mirror of
https://github.com/mruby/mruby
synced 2026-06-08 16:11:16 +00:00
variable.c (mrb_gc_mark_iv_size): unify the function with mrb_gc_mark_iv
This commit is contained in:
@@ -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 */
|
||||
|
||||
@@ -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++;
|
||||
|
||||
+1
-6
@@ -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);
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user