diff --git a/include/mruby/internal.h b/include/mruby/internal.h index a2948961a..05d7b9a26 100644 --- a/include/mruby/internal.h +++ b/include/mruby/internal.h @@ -186,8 +186,7 @@ mrb_bool mrb_ident_p(const char *s, mrb_int len); /* GC functions */ void mrb_gc_mark_gv(mrb_state*); void mrb_gc_free_gv(mrb_state*); -void mrb_gc_mark_iv(mrb_state*, struct RObject*); -size_t mrb_gc_mark_iv_size(mrb_state*, struct RObject*); +size_t mrb_gc_mark_iv(mrb_state*, struct RObject*); void mrb_gc_free_iv(mrb_state*, struct RObject*); /* VM */ diff --git a/src/gc.c b/src/gc.c index 5434bd0d0..839213e70 100644 --- a/src/gc.c +++ b/src/gc.c @@ -610,8 +610,7 @@ gc_mark_children(mrb_state *mrb, mrb_gc *gc, struct RBasic *obj) case MRB_TT_OBJECT: case MRB_TT_CDATA: - mrb_gc_mark_iv(mrb, (struct RObject*)obj); - children += mrb_gc_mark_iv_size(mrb, (struct RObject*)obj); + children += mrb_gc_mark_iv(mrb, (struct RObject*)obj); break; case MRB_TT_PROC: @@ -675,9 +674,8 @@ gc_mark_children(mrb_state *mrb, mrb_gc *gc, struct RBasic *obj) break; case MRB_TT_HASH: - mrb_gc_mark_iv(mrb, (struct RObject*)obj); + children += mrb_gc_mark_iv(mrb, (struct RObject*)obj); mrb_gc_mark_hash(mrb, (struct RHash*)obj); - children += mrb_gc_mark_iv_size(mrb, (struct RObject*)obj); children += mrb_gc_mark_hash_size(mrb, (struct RHash*)obj); break; @@ -702,7 +700,7 @@ gc_mark_children(mrb_state *mrb, mrb_gc *gc, struct RBasic *obj) break; case MRB_TT_EXCEPTION: - mrb_gc_mark_iv(mrb, (struct RObject*)obj); + children += mrb_gc_mark_iv(mrb, (struct RObject*)obj); if (((struct RException*)obj)->mesg) { mrb_gc_mark(mrb, (struct RBasic*)((struct RException*)obj)->mesg); children++; diff --git a/src/variable.c b/src/variable.c index 4c51a8a61..4a373f33f 100644 --- a/src/variable.c +++ b/src/variable.c @@ -255,15 +255,10 @@ mrb_gc_free_gv(mrb_state *mrb) iv_free(mrb, mrb->globals); } -void +size_t mrb_gc_mark_iv(mrb_state *mrb, struct RObject *obj) { mark_tbl(mrb, obj->iv); -} - -size_t -mrb_gc_mark_iv_size(mrb_state *mrb, struct RObject *obj) -{ return iv_size(mrb, obj->iv); }