summaryrefslogtreecommitdiffhomepage
path: root/src/vm.c
diff options
context:
space:
mode:
authorYukihiro "Matz" Matsumoto <[email protected]>2017-09-23 10:12:04 +0900
committerYukihiro "Matz" Matsumoto <[email protected]>2017-09-23 10:12:04 +0900
commit7450a774a5f796f7e9d312ba9c9690097f4aa309 (patch)
tree07c0fe302fb32291a5a2836aa51d4a4862b2fbba /src/vm.c
parent0ceaa0960af0b0150bc16da3d10a5e1ab0d3053b (diff)
downloadmruby-7450a774a5f796f7e9d312ba9c9690097f4aa309.tar.gz
mruby-7450a774a5f796f7e9d312ba9c9690097f4aa309.zip
The first instruction was skipped mistakenly in ensure clause; fix #3811
Diffstat (limited to 'src/vm.c')
-rw-r--r--src/vm.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/src/vm.c b/src/vm.c
index 3c74f265c..2b0922cd9 100644
--- a/src/vm.c
+++ b/src/vm.c
@@ -1329,6 +1329,7 @@ RETRY_TRY_BLOCK:
if (a > mrb->c->eidx - epos)
a = mrb->c->eidx - epos;
+ pc = pc + 1;
for (n=0; n<a; n++) {
proc = mrb->c->ensure[epos+n];
irep = proc->body.irep;
@@ -1339,7 +1340,7 @@ RETRY_TRY_BLOCK:
ci->stackent = mrb->c->stack;
ci->nregs = irep->nregs;
ci->target_class = proc->target_class;
- ci->pc = pc + 1;
+ ci->pc = pc;
ci->acc = ci[-1].nregs;
mrb->c->stack += ci->acc;
stack_extend(mrb, ci->nregs);