summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorYukihiro "Matz" Matsumoto <[email protected]>2014-04-13 00:32:23 +0900
committerYukihiro "Matz" Matsumoto <[email protected]>2014-04-13 00:32:23 +0900
commit45eccd1333c099ff77c24c48029cfd67424cde52 (patch)
treeea1f59bd2f3d57607807ee5345ee8e935d442cdc
parenta18f22e1b4c49c864ed00300053c01b10d799f85 (diff)
downloadmruby-45eccd1333c099ff77c24c48029cfd67424cde52.tar.gz
mruby-45eccd1333c099ff77c24c48029cfd67424cde52.zip
khash.h: use first found k_del
-rw-r--r--include/mruby/khash.h6
1 files changed, 3 insertions, 3 deletions
diff --git a/include/mruby/khash.h b/include/mruby/khash.h
index d53383f69..3a4315db0 100644
--- a/include/mruby/khash.h
+++ b/include/mruby/khash.h
@@ -180,7 +180,7 @@ kh_fill_flags(uint8_t *p, uint8_t c, size_t len)
return k; \
} \
} \
- else { \
+ else if (del_k != kh_end(h)) { \
del_k = k; \
} \
k = (k+khash_inc(h)) & khash_mask(h); \
@@ -190,7 +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; \
+ return del_k; \
} \
else { \
/* put at empty */ \
@@ -198,7 +198,7 @@ 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) \