From b6cfe0e001efc552de1286f7f7ca59110956d3d6 Mon Sep 17 00:00:00 2001 From: ksss Date: Fri, 11 Apr 2014 19:12:07 +0900 Subject: Fix bug kh_put after kh_del report by @mirichi --- include/mruby/khash.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'include') diff --git a/include/mruby/khash.h b/include/mruby/khash.h index cad3bc5d3..57ebf98d7 100644 --- a/include/mruby/khash.h +++ b/include/mruby/khash.h @@ -188,7 +188,7 @@ kh_fill_flags(uint8_t *p, uint8_t c, size_t len) if (del_k != kh_end(h)) { \ /* put at del */ \ h->keys[del_k] = key; \ - h->ed_flags[k/4] &= ~__m_del[k%4]; \ + h->ed_flags[del_k/4] &= ~__m_del[del_k%4]; \ h->size++; \ } \ else { \ -- cgit v1.2.3 From 91f68f77a84ac88ac36a2d12878af7878d0c8913 Mon Sep 17 00:00:00 2001 From: ksss Date: Fri, 11 Apr 2014 21:13:43 +0900 Subject: kh_put return value should be found index --- include/mruby/khash.h | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) (limited to 'include') diff --git a/include/mruby/khash.h b/include/mruby/khash.h index 57ebf98d7..d53383f69 100644 --- a/include/mruby/khash.h +++ b/include/mruby/khash.h @@ -190,6 +190,7 @@ kh_fill_flags(uint8_t *p, uint8_t c, size_t len) h->keys[del_k] = key; \ h->ed_flags[del_k/4] &= ~__m_del[del_k%4]; \ h->size++; \ + return del_k; \ } \ else { \ /* put at empty */ \ @@ -197,8 +198,8 @@ kh_fill_flags(uint8_t *p, uint8_t c, size_t len) h->ed_flags[k/4] &= ~__m_empty[k%4]; \ h->size++; \ h->n_occupied++; \ + return k; \ } \ - return k; \ } \ void kh_del_##name(mrb_state *mrb, kh_##name##_t *h, khint_t x) \ { \ -- cgit v1.2.3