diff options
| author | Yukihiro "Matz" Matsumoto <[email protected]> | 2017-02-27 18:39:42 +0900 |
|---|---|---|
| committer | Yukihiro "Matz" Matsumoto <[email protected]> | 2017-02-27 18:39:42 +0900 |
| commit | 3fc9bf3d5f8c653a86a7c419ff87ca9176b008af (patch) | |
| tree | 05db21deba79793334066c4c71215e78ace5e648 /src | |
| parent | d219e63a74b4d264c3c71a477c1813f23ff1f771 (diff) | |
| download | mruby-3fc9bf3d5f8c653a86a7c419ff87ca9176b008af.tar.gz mruby-3fc9bf3d5f8c653a86a7c419ff87ca9176b008af.zip | |
Update local variable only after the value is checked.
Diffstat (limited to 'src')
| -rw-r--r-- | src/vm.c | 6 |
1 files changed, 3 insertions, 3 deletions
@@ -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) { |
