summaryrefslogtreecommitdiffhomepage
path: root/src
diff options
context:
space:
mode:
authorMasamitsu MURASE <[email protected]>2012-07-28 21:00:47 +0900
committerMasamitsu MURASE <[email protected]>2012-07-28 21:10:57 +0900
commitb48cfea73619f0fbf64324209f5fa5d7cc725856 (patch)
tree6e61112138f4d55080554711496ed7c9d0fae4f0 /src
parent7f8076ef90be326d7a199baad32d0a84ebbec6d3 (diff)
downloadmruby-b48cfea73619f0fbf64324209f5fa5d7cc725856.tar.gz
mruby-b48cfea73619f0fbf64324209f5fa5d7cc725856.zip
Protect deleted key and value from GC.
Diffstat (limited to 'src')
-rw-r--r--src/hash.c2
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);
}