From 6a66ce10b3bacb9d4fe8a58bec8820613bcfa5c3 Mon Sep 17 00:00:00 2001 From: "Yukihiro \"Matz\" Matsumoto" Date: Fri, 16 Jun 2017 08:25:34 +0900 Subject: Need to unshare env from top callinfo; fix #3685 --- src/vm.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) (limited to 'src') diff --git a/src/vm.c b/src/vm.c index d69617be5..9607d3c32 100644 --- a/src/vm.c +++ b/src/vm.c @@ -1872,7 +1872,7 @@ RETRY_TRY_BLOCK: } ce = mrb->c->cibase + e->cioff; - while (--ci > ce) { + while (ci >= ce) { if (ci->env) { mrb_env_unshare(mrb, ci->env); } @@ -1880,6 +1880,7 @@ RETRY_TRY_BLOCK: localjump_error(mrb, LOCALJUMP_ERROR_RETURN); goto L_RAISE; } + ci--; } if (ce == mrb->c->cibase) { localjump_error(mrb, LOCALJUMP_ERROR_RETURN); -- cgit v1.2.3