summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
-rw-r--r--include/mruby/proc.h1
-rw-r--r--src/gc.c3
2 files changed, 3 insertions, 1 deletions
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; i<len; i++) {
mrb_gc_mark_value(mrb, e->stack[i]);