summaryrefslogtreecommitdiffhomepage
path: root/mrbgems/mruby-eval
diff options
context:
space:
mode:
authorYukihiro "Matz" Matsumoto <[email protected]>2018-10-23 21:10:03 +0900
committerYukihiro "Matz" Matsumoto <[email protected]>2018-10-23 21:10:03 +0900
commitb3a181aaa13aaa85e968fd09b780c061289aea38 (patch)
treebbe16f97a34fb8d8f125079aed8d4bda18a8094b /mrbgems/mruby-eval
parent80b5a56f5139c9bcc6f064ac77c7a69b7489137c (diff)
downloadmruby-b3a181aaa13aaa85e968fd09b780c061289aea38.tar.gz
mruby-b3a181aaa13aaa85e968fd09b780c061289aea38.zip
Fixed a bug in processing `OP_EXT?` instructions.
fix haconiwa/haconiwa#171
Diffstat (limited to 'mrbgems/mruby-eval')
-rw-r--r--mrbgems/mruby-eval/src/eval.c12
1 files changed, 6 insertions, 6 deletions
diff --git a/mrbgems/mruby-eval/src/eval.c b/mrbgems/mruby-eval/src/eval.c
index e6a82723d..fa687d624 100644
--- a/mrbgems/mruby-eval/src/eval.c
+++ b/mrbgems/mruby-eval/src/eval.c
@@ -201,16 +201,16 @@ patch_irep(mrb_state *mrb, mrb_irep *irep, int bnest, mrb_irep *top)
break;
case OP_EXT1:
- insn = PEEK_B(irep->iseq+1);
- i += mrb_insn_size1[insn];
+ insn = PEEK_B(irep->iseq+i+1);
+ i += mrb_insn_size1[insn]+1;
continue;
case OP_EXT2:
- insn = PEEK_B(irep->iseq+1);
- i += mrb_insn_size2[insn];
+ insn = PEEK_B(irep->iseq+i+1);
+ i += mrb_insn_size2[insn]+1;
continue;
case OP_EXT3:
- insn = PEEK_B(irep->iseq+1);
- i += mrb_insn_size3[insn];
+ insn = PEEK_B(irep->iseq+i+1);
+ i += mrb_insn_size3[insn]+1;
continue;
}
i+=mrb_insn_size[insn];