diff options
| author | Yukihiro "Matz" Matsumoto <[email protected]> | 2016-10-28 09:21:14 +0900 |
|---|---|---|
| committer | Yukihiro "Matz" Matsumoto <[email protected]> | 2016-10-28 09:21:14 +0900 |
| commit | 9a126278b6f0fcfbec9c4a2ee391290d3ce2122f (patch) | |
| tree | f935f8b514995057af953835cedee4827d646ac2 | |
| parent | c45ed46f28b2d73aa36eeb0539cb0f3bc173b528 (diff) | |
| download | mruby-9a126278b6f0fcfbec9c4a2ee391290d3ce2122f.tar.gz mruby-9a126278b6f0fcfbec9c4a2ee391290d3ce2122f.zip | |
should not unshare() reclaimed env objects; fix #3230
| -rw-r--r-- | src/gc.c | 3 |
1 files changed, 2 insertions, 1 deletions
@@ -736,7 +736,8 @@ obj_free(mrb_state *mrb, struct RBasic *obj) while (ce <= ci) { struct REnv *e = ci->env; - if (e && !is_dead(&mrb->gc, e) && MRB_ENV_STACK_SHARED_P(e)) { + if (e && !is_dead(&mrb->gc, e) && + e->tt == MRB_TT_ENV && MRB_ENV_STACK_SHARED_P(e)) { mrb_env_unshare(mrb, e); } ci--; |
