summaryrefslogtreecommitdiffhomepage
path: root/src/gc.c
diff options
context:
space:
mode:
authorYukihiro Matsumoto <[email protected]>2012-05-05 08:55:58 +0900
committerYukihiro Matsumoto <[email protected]>2012-05-05 08:55:58 +0900
commite0460c1157b8ee4ac0cfc620c399e5e3764cf935 (patch)
treeaf6d190baefcbfec6210582655e306b1f13f5ce3 /src/gc.c
parentc9a51c43bc32cdd684a0e1b64e6a8bc8dba5d70e (diff)
downloadmruby-e0460c1157b8ee4ac0cfc620c399e5e3764cf935.tar.gz
mruby-e0460c1157b8ee4ac0cfc620c399e5e3764cf935.zip
hash refactored
Diffstat (limited to 'src/gc.c')
-rw-r--r--src/gc.c7
1 files changed, 5 insertions, 2 deletions
diff --git a/src/gc.c b/src/gc.c
index 06360036a..b5c94c9bd 100644
--- a/src/gc.c
+++ b/src/gc.c
@@ -345,7 +345,8 @@ gc_mark_children(mrb_state *mrb, struct RBasic *obj)
break;
case MRB_TT_HASH:
- mrb_gc_mark_ht(mrb, (struct RClass*)obj);
+ mrb_gc_mark_iv(mrb, (struct RObject*)obj);
+ mrb_gc_mark_ht(mrb, (struct RHash*)obj);
break;
case MRB_TT_STRING:
@@ -422,6 +423,7 @@ obj_free(mrb_state *mrb, struct RBasic *obj)
break;
case MRB_TT_HASH:
+ mrb_gc_free_iv(mrb, (struct RObject*)obj);
mrb_gc_free_ht(mrb, (struct RClass*)obj);
break;
@@ -530,7 +532,8 @@ gc_gray_mark(mrb_state *mrb, struct RBasic *obj)
break;
case MRB_TT_HASH:
- children += mrb_gc_mark_ht_size(mrb, (struct RClass*)obj);
+ children += mrb_gc_mark_iv_size(mrb, (struct RObject*)obj);
+ children += mrb_gc_mark_ht_size(mrb, (struct RHash*)obj);
break;
case MRB_TT_PROC: