diff --git a/include/mruby/proc.h b/include/mruby/proc.h index 17290950c..b33e9e1a2 100644 --- a/include/mruby/proc.h +++ b/include/mruby/proc.h @@ -19,7 +19,6 @@ struct REnv { MRB_OBJECT_HEADER; mrb_value *stack; struct mrb_context *cxt; - // struct RProc *proc; mrb_sym mid; }; diff --git a/src/gc.c b/src/gc.c index a3a638ae3..4b83f454b 100644 --- a/src/gc.c +++ b/src/gc.c @@ -657,6 +657,9 @@ gc_mark_children(mrb_state *mrb, mrb_gc *gc, struct RBasic *obj) struct REnv *e = (struct REnv*)obj; mrb_int i, len; + if (MRB_ENV_STACK_SHARED_P(e) && e->cxt->fib) { + mrb_gc_mark(mrb, (struct RBasic*)e->cxt->fib); + } len = MRB_ENV_STACK_LEN(e); for (i=0; istack[i]);