From 6dd1a570c2ee436bf20aef9e66e6c781cb222b96 Mon Sep 17 00:00:00 2001 From: "Yukihiro \"Matz\" Matsumoto" Date: Tue, 11 Apr 2017 12:40:26 +0900 Subject: Shared TT_ENV may need to be marked; fix #3550 --- src/gc.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/gc.c b/src/gc.c index db70587d5..86ee65ae6 100644 --- a/src/gc.c +++ b/src/gc.c @@ -646,7 +646,6 @@ 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) break; len = MRB_ENV_STACK_LEN(e); for (i=0; istack[i]); @@ -761,6 +760,7 @@ obj_free(mrb_state *mrb, struct RBasic *obj, int end) case MRB_TT_FIBER: { struct mrb_context *c = ((struct RFiber*)obj)->cxt; + if (!end && c && c != mrb->root_c) { mrb_callinfo *ci = c->ci; mrb_callinfo *ce = c->cibase; -- cgit v1.2.3