mirror of
https://github.com/mruby/mruby
synced 2026-06-08 16:11:16 +00:00
Avoid recursion from mark_context().
This commit is contained in:
@@ -582,6 +582,7 @@ mark_context(mrb_state *mrb, struct mrb_context *c)
|
||||
int i;
|
||||
mrb_callinfo *ci;
|
||||
|
||||
start:
|
||||
if (c->status == MRB_FIBER_TERMINATED) return;
|
||||
|
||||
/* mark VM stack */
|
||||
@@ -603,7 +604,8 @@ mark_context(mrb_state *mrb, struct mrb_context *c)
|
||||
/* mark fibers */
|
||||
mrb_gc_mark(mrb, (struct RBasic*)c->fib);
|
||||
if (c->prev) {
|
||||
mark_context(mrb, c->prev);
|
||||
c = c->prev;
|
||||
goto start;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user