From b6598e052fda9a27692156ab8b973ce6e3374ee3 Mon Sep 17 00:00:00 2001 From: "Yukihiro \"Matz\" Matsumoto" Date: Tue, 31 Oct 2017 09:06:04 +0900 Subject: Need to mark fibers referenced from `env`; fix #3837 The issue #3837 is a regression of #3819. I was mistakenly removed a important code to mark fibers from `env`. --- src/gc.c | 3 +++ 1 file changed, 3 insertions(+) (limited to 'src/gc.c') 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]); -- cgit v1.2.3