diff --git a/include/mruby/internal.h b/include/mruby/internal.h index 05d7b9a26..5abd648dd 100644 --- a/include/mruby/internal.h +++ b/include/mruby/internal.h @@ -80,8 +80,7 @@ void mrb_gc_free_mt(mrb_state*, struct RClass*); /* hash */ size_t mrb_hash_memsize(mrb_value obj); -void mrb_gc_mark_hash(mrb_state*, struct RHash*); -size_t mrb_gc_mark_hash_size(mrb_state*, struct RHash*); +size_t mrb_gc_mark_hash(mrb_state*, struct RHash*); void mrb_gc_free_hash(mrb_state*, struct RHash*); /* irep */ diff --git a/src/gc.c b/src/gc.c index 839213e70..818892049 100644 --- a/src/gc.c +++ b/src/gc.c @@ -675,8 +675,7 @@ gc_mark_children(mrb_state *mrb, mrb_gc *gc, struct RBasic *obj) case MRB_TT_HASH: children += mrb_gc_mark_iv(mrb, (struct RObject*)obj); - mrb_gc_mark_hash(mrb, (struct RHash*)obj); - children += mrb_gc_mark_hash_size(mrb, (struct RHash*)obj); + children += mrb_gc_mark_hash(mrb, (struct RHash*)obj); break; case MRB_TT_STRING: diff --git a/src/hash.c b/src/hash.c index 1aa12f6e8..dcfc7dff1 100644 --- a/src/hash.c +++ b/src/hash.c @@ -1072,18 +1072,13 @@ h_replace(mrb_state *mrb, struct RHash *h, struct RHash *orig_h) } } -void +size_t mrb_gc_mark_hash(mrb_state *mrb, struct RHash *h) { h_each(h, entry, { mrb_gc_mark_value(mrb, entry->key); mrb_gc_mark_value(mrb, entry->val); }); -} - -size_t -mrb_gc_mark_hash_size(mrb_state *mrb, struct RHash *h) -{ return h_size(h) * 2; }