From 3fc9bf3d5f8c653a86a7c419ff87ca9176b008af Mon Sep 17 00:00:00 2001 From: "Yukihiro \"Matz\" Matsumoto" Date: Mon, 27 Feb 2017 18:39:42 +0900 Subject: Update local variable only after the value is checked. --- src/vm.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) (limited to 'src') diff --git a/src/vm.c b/src/vm.c index a370ec919..3ff54a88f 100644 --- a/src/vm.c +++ b/src/vm.c @@ -1620,12 +1620,12 @@ RETRY_TRY_BLOCK: stk = mrb->c->stack; while (ci[0].ridx == ci[-1].ridx) { cipop(mrb); - ci = mrb->c->ci; - mrb->c->stack = ci[1].stackent; - if (ci[1].acc == CI_ACC_SKIP && prev_jmp) { + mrb->c->stack = ci->stackent; + if (ci->acc == CI_ACC_SKIP && prev_jmp) { mrb->jmp = prev_jmp; MRB_THROW(prev_jmp); } + ci = mrb->c->ci; if (ci == mrb->c->cibase) { mrb->c->stack = stk; while (eidx > 0) { -- cgit v1.2.3