diff --git a/src/gc.c b/src/gc.c index cd885f7e8..56d316b0d 100644 --- a/src/gc.c +++ b/src/gc.c @@ -647,7 +647,7 @@ gc_mark_children(mrb_state *mrb, mrb_gc *gc, struct RBasic *obj) mrb_gc_mark(mrb, (struct RBasic*)p->env); mrb_gc_mark(mrb, (struct RBasic*)p->target_class); - if (!MRB_PROC_CFUNC_P(p)) { + if (!MRB_PROC_CFUNC_P(p) && p->body.irep) { mrb_gc_mark(mrb, (struct RBasic*)p->body.irep->outer); } }