diff options
| author | Yukihiro "Matz" Matsumoto <[email protected]> | 2017-04-11 12:40:26 +0900 |
|---|---|---|
| committer | Yukihiro "Matz" Matsumoto <[email protected]> | 2017-04-11 12:40:26 +0900 |
| commit | 6dd1a570c2ee436bf20aef9e66e6c781cb222b96 (patch) | |
| tree | c7f47adda64f863e7f586908960ef8f9fd6da02c /src/gc.c | |
| parent | fff4a4ed34b2692227b0f9d5773872b8410fd08d (diff) | |
| download | mruby-6dd1a570c2ee436bf20aef9e66e6c781cb222b96.tar.gz mruby-6dd1a570c2ee436bf20aef9e66e6c781cb222b96.zip | |
Shared TT_ENV may need to be marked; fix #3550
Diffstat (limited to 'src/gc.c')
| -rw-r--r-- | src/gc.c | 2 |
1 files changed, 1 insertions, 1 deletions
@@ -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; i<len; i++) { mrb_gc_mark_value(mrb, e->stack[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; |
