diff --git a/src/gc.c b/src/gc.c index 969698751..9263e7692 100644 --- a/src/gc.c +++ b/src/gc.c @@ -798,7 +798,7 @@ obj_free(mrb_state *mrb, struct RBasic *obj, int end) while (ce <= ci) { struct REnv *e = ci->u.env; - if (e && !mrb_object_dead_p(mrb, (struct RBasic*)e) && + if (e && !is_dead(&mrb->gc, (struct RBasic*)e) && e->tt == MRB_TT_ENV && MRB_ENV_ONSTACK_P(e)) { mrb_env_unshare(mrb, e, TRUE); }