diff options
Diffstat (limited to 'src/hash.c')
| -rw-r--r-- | src/hash.c | 10 |
1 files changed, 7 insertions, 3 deletions
diff --git a/src/hash.c b/src/hash.c index 728fc0f2f..58f5243cf 100644 --- a/src/hash.c +++ b/src/hash.c @@ -52,11 +52,15 @@ mrb_gc_mark_ht(mrb_state *mrb, struct RHash *hash) khash_t(ht) *h = hash->ht; if (!h) return; - for (k = kh_begin(h); k != kh_end(h); k++) + for (k = kh_begin(h); k != kh_end(h); k++) { if (kh_exist(h, k)) { - mrb_gc_mark_value(mrb, kh_key(h, k)); - mrb_gc_mark_value(mrb, kh_value(h, k)); + mrb_value key = kh_key(h, k); + mrb_value val = kh_value(h, k); + + mrb_gc_mark_value(mrb, key); + mrb_gc_mark_value(mrb, val); } + } } size_t |
