Skip to content

Commit 4f43db8

Browse files
committed
Unshare popped TT_ENV objects.
1 parent 3b40a2f commit 4f43db8

File tree

1 file changed

+6
-0
lines changed

1 file changed

+6
-0
lines changed

Diff for: src/vm.c

+6
Original file line numberDiff line numberDiff line change
@@ -1676,6 +1676,9 @@ mrb_vm_exec(mrb_state *mrb, struct RProc *proc, mrb_code *pc)
16761676

16771677
ce = mrb->c->cibase + e->cioff;
16781678
while (--ci > ce) {
1679+
if (ci->env) {
1680+
mrb_env_unshare(mrb, ci->env);
1681+
}
16791682
if (ci->acc < 0) {
16801683
localjump_error(mrb, LOCALJUMP_ERROR_RETURN);
16811684
goto L_RAISE;
@@ -1727,6 +1730,9 @@ mrb_vm_exec(mrb_state *mrb, struct RProc *proc, mrb_code *pc)
17271730
mrb->c->ci = ci;
17281731
break;
17291732
}
1733+
if (ci->env) {
1734+
mrb_env_unshare(mrb, ci->env);
1735+
}
17301736
ci--;
17311737
}
17321738
break;

0 commit comments

Comments
 (0)