Fixed a wrong condition; fix #3550

Shared TT_ENV should be unshared. Reversed condition.
parent e8dca6b0
...@@ -769,7 +769,7 @@ obj_free(mrb_state *mrb, struct RBasic *obj, int end) ...@@ -769,7 +769,7 @@ obj_free(mrb_state *mrb, struct RBasic *obj, int end)
while (ce <= ci) { while (ce <= ci) {
struct REnv *e = ci->env; struct REnv *e = ci->env;
if (e && !is_dead(&mrb->gc, e) && if (e && !is_dead(&mrb->gc, e) &&
e->tt == MRB_TT_ENV && MRB_ENV_STACK_SHARED_P(e)) { e->tt == MRB_TT_ENV && !MRB_ENV_STACK_SHARED_P(e)) {
mrb_env_unshare(mrb, e); mrb_env_unshare(mrb, e);
} }
ci--; ci--;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment