summaryrefslogtreecommitdiffhomepage
path: root/src/gc.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/gc.c')
-rw-r--r--src/gc.c11
1 files changed, 4 insertions, 7 deletions
diff --git a/src/gc.c b/src/gc.c
index fa6c6e424..19354b301 100644
--- a/src/gc.c
+++ b/src/gc.c
@@ -450,7 +450,7 @@ gc_mark_children(mrb_state *mrb, struct RBasic *obj)
case MRB_TT_HASH:
mrb_gc_mark_iv(mrb, (struct RObject*)obj);
- mrb_gc_mark_ht(mrb, (struct RHash*)obj);
+ mrb_gc_mark_hash(mrb, (struct RHash*)obj);
break;
case MRB_TT_STRING:
@@ -525,14 +525,11 @@ obj_free(mrb_state *mrb, struct RBasic *obj)
case MRB_TT_HASH:
mrb_gc_free_iv(mrb, (struct RObject*)obj);
- mrb_gc_free_ht(mrb, (struct RHash*)obj);
+ mrb_gc_free_hash(mrb, (struct RHash*)obj);
break;
case MRB_TT_STRING:
- if (obj->flags & MRB_STR_SHARED)
- mrb_str_decref(mrb, ((struct RString*)obj)->aux.shared);
- else if ((obj->flags & MRB_STR_STATIC) == 0)
- mrb_free(mrb, ((struct RString*)obj)->ptr);
+ mrb_gc_free_str(mrb, (struct RString*)obj);
break;
case MRB_TT_RANGE:
@@ -654,7 +651,7 @@ gc_gray_mark(mrb_state *mrb, struct RBasic *obj)
case MRB_TT_HASH:
children += mrb_gc_mark_iv_size(mrb, (struct RObject*)obj);
- children += mrb_gc_mark_ht_size(mrb, (struct RHash*)obj);
+ children += mrb_gc_mark_hash_size(mrb, (struct RHash*)obj);
break;
case MRB_TT_PROC: