diff options
| author | Yukihiro Matsumoto <[email protected]> | 2012-05-05 08:55:58 +0900 |
|---|---|---|
| committer | Yukihiro Matsumoto <[email protected]> | 2012-05-05 08:55:58 +0900 |
| commit | e0460c1157b8ee4ac0cfc620c399e5e3764cf935 (patch) | |
| tree | af6d190baefcbfec6210582655e306b1f13f5ce3 /src/gc.c | |
| parent | c9a51c43bc32cdd684a0e1b64e6a8bc8dba5d70e (diff) | |
| download | mruby-e0460c1157b8ee4ac0cfc620c399e5e3764cf935.tar.gz mruby-e0460c1157b8ee4ac0cfc620c399e5e3764cf935.zip | |
hash refactored
Diffstat (limited to 'src/gc.c')
| -rw-r--r-- | src/gc.c | 7 |
1 files changed, 5 insertions, 2 deletions
@@ -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: |
