diff options
| author | Yukihiro "Matz" Matsumoto <[email protected]> | 2014-04-11 23:44:44 +0900 |
|---|---|---|
| committer | Yukihiro "Matz" Matsumoto <[email protected]> | 2014-04-11 23:44:44 +0900 |
| commit | f53b2601a0b2de6286106be237babcb510e07421 (patch) | |
| tree | 0097fe8e75a196615930ccfcef5ef3dcfbef8d53 /include | |
| parent | b20d711c4d3d8241da08aaa7688000b007e13c39 (diff) | |
| parent | 91f68f77a84ac88ac36a2d12878af7878d0c8913 (diff) | |
| download | mruby-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.h | 5 |
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) \ { \ |
