mirror of
https://github.com/mruby/mruby
synced 2026-06-08 16:11:16 +00:00
range.c (mrb_gc_mark_range): return size
If not initialized, size is zero, otherwise two.
This commit is contained in:
@@ -687,8 +687,7 @@ gc_mark_children(mrb_state *mrb, mrb_gc *gc, struct RBasic *obj)
|
||||
break;
|
||||
|
||||
case MRB_TT_RANGE:
|
||||
mrb_gc_mark_range(mrb, (struct RRange*)obj);
|
||||
children+=2;
|
||||
children += mrb_gc_mark_range(mrb, (struct RRange*)obj);
|
||||
break;
|
||||
|
||||
case MRB_TT_BREAK:
|
||||
@@ -705,8 +704,10 @@ gc_mark_children(mrb_state *mrb, mrb_gc *gc, struct RBasic *obj)
|
||||
mrb_gc_mark(mrb, (struct RBasic*)((struct RException*)obj)->mesg);
|
||||
children++;
|
||||
}
|
||||
mrb_gc_mark(mrb, (struct RBasic*)((struct RException*)obj)->backtrace);
|
||||
children++;
|
||||
if (((struct RException*)obj)->backtrace) {
|
||||
mrb_gc_mark(mrb, (struct RBasic*)((struct RException*)obj)->backtrace);
|
||||
children++;
|
||||
}
|
||||
break;
|
||||
|
||||
case MRB_TT_BACKTRACE:
|
||||
|
||||
+5
-5
@@ -437,13 +437,13 @@ mrb_get_values_at(mrb_state *mrb, mrb_value obj, mrb_int olen, mrb_int argc, con
|
||||
return result;
|
||||
}
|
||||
|
||||
void
|
||||
size_t
|
||||
mrb_gc_mark_range(mrb_state *mrb, struct RRange *r)
|
||||
{
|
||||
if (RANGE_INITIALIZED_P(r)) {
|
||||
mrb_gc_mark_value(mrb, RANGE_BEG(r));
|
||||
mrb_gc_mark_value(mrb, RANGE_END(r));
|
||||
}
|
||||
if (!RANGE_INITIALIZED_P(r)) return 0;
|
||||
mrb_gc_mark_value(mrb, RANGE_BEG(r));
|
||||
mrb_gc_mark_value(mrb, RANGE_END(r));
|
||||
return 2;
|
||||
}
|
||||
|
||||
MRB_API struct RRange*
|
||||
|
||||
Reference in New Issue
Block a user