summaryrefslogtreecommitdiffhomepage
path: root/include
diff options
context:
space:
mode:
authorYukihiro "Matz" Matsumoto <[email protected]>2014-04-11 23:44:44 +0900
committerYukihiro "Matz" Matsumoto <[email protected]>2014-04-11 23:44:44 +0900
commitf53b2601a0b2de6286106be237babcb510e07421 (patch)
tree0097fe8e75a196615930ccfcef5ef3dcfbef8d53 /include
parentb20d711c4d3d8241da08aaa7688000b007e13c39 (diff)
parent91f68f77a84ac88ac36a2d12878af7878d0c8913 (diff)
downloadmruby-f53b2601a0b2de6286106be237babcb510e07421.tar.gz
mruby-f53b2601a0b2de6286106be237babcb510e07421.zip
Merge pull request #2043 from ksss/khash-fix
Fix bug kh_put after kh_del report by @mirichi
Diffstat (limited to 'include')
-rw-r--r--include/mruby/khash.h5
1 files changed, 3 insertions, 2 deletions
diff --git a/include/mruby/khash.h b/include/mruby/khash.h
index cad3bc5d3..d53383f69 100644
--- a/include/mruby/khash.h
+++ b/include/mruby/khash.h
@@ -188,8 +188,9 @@ 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++; \
+ 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) \
{ \