diff options
| author | Masamitsu MURASE <[email protected]> | 2012-07-28 21:00:47 +0900 |
|---|---|---|
| committer | Masamitsu MURASE <[email protected]> | 2012-07-28 21:10:57 +0900 |
| commit | b48cfea73619f0fbf64324209f5fa5d7cc725856 (patch) | |
| tree | 6e61112138f4d55080554711496ed7c9d0fae4f0 /src/hash.c | |
| parent | 7f8076ef90be326d7a199baad32d0a84ebbec6d3 (diff) | |
| download | mruby-b48cfea73619f0fbf64324209f5fa5d7cc725856.tar.gz mruby-b48cfea73619f0fbf64324209f5fa5d7cc725856.zip | |
Protect deleted key and value from GC.
Diffstat (limited to 'src/hash.c')
| -rw-r--r-- | src/hash.c | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/src/hash.c b/src/hash.c index dacef4713..04e8c60be 100644 --- a/src/hash.c +++ b/src/hash.c @@ -568,7 +568,9 @@ mrb_hash_shift(mrb_state *mrb, mrb_value hash) if (!kh_exist(h,k)) continue; delKey = kh_key(h,k); + mrb_gc_protect(mrb, delKey); delVal = mrb_hash_delete_key(mrb, hash, delKey); + mrb_gc_protect(mrb, delVal); return mrb_assoc_new(mrb, delKey, delVal); } |
