mirror of
https://github.com/mruby/mruby
synced 2026-06-08 16:11:16 +00:00
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`.
This commit is contained in:
@@ -19,7 +19,6 @@ struct REnv {
|
||||
MRB_OBJECT_HEADER;
|
||||
mrb_value *stack;
|
||||
struct mrb_context *cxt;
|
||||
// struct RProc *proc;
|
||||
mrb_sym mid;
|
||||
};
|
||||
|
||||
|
||||
@@ -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]);
|
||||
|
||||
Reference in New Issue
Block a user