From b3a181aaa13aaa85e968fd09b780c061289aea38 Mon Sep 17 00:00:00 2001 From: "Yukihiro \"Matz\" Matsumoto" Date: Tue, 23 Oct 2018 21:10:03 +0900 Subject: Fixed a bug in processing `OP_EXT?` instructions. fix haconiwa/haconiwa#171 --- mrbgems/mruby-eval/src/eval.c | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) (limited to 'mrbgems/mruby-eval') 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]; -- cgit v1.2.3