summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorYukihiro Matsumoto <[email protected]>2012-06-14 04:44:02 +0900
committerYukihiro Matsumoto <[email protected]>2012-06-14 04:44:02 +0900
commit2eeaab4e81ea475d80af9d49cf333bb416fd666f (patch)
tree215168fc160d6f9c95427d4d541fdef41daa0007
parent3fb20bc72aba82c7fb65530071ab32c62216dc81 (diff)
downloadmruby-2eeaab4e81ea475d80af9d49cf333bb416fd666f.tar.gz
mruby-2eeaab4e81ea475d80af9d49cf333bb416fd666f.zip
do not offset jump from OP_ENTER if no optional argument given
-rw-r--r--src/vm.c4
1 files changed, 3 insertions, 1 deletions
diff --git a/src/vm.c b/src/vm.c
index e229a4a54..951c63b21 100644
--- a/src/vm.c
+++ b/src/vm.c
@@ -971,7 +971,9 @@ mrb_run(mrb_state *mrb, struct RProc *proc, mrb_value self)
if (r) { /* r */
regs[m1+o+1] = mrb_ary_new_capa(mrb, 0);
}
- pc += argc - m1 - m2 + 1;
+ if (o == 0) pc++;
+ else
+ pc += argc - m1 - m2 + 1;
}
else {
memmove(&regs[1], argv, sizeof(mrb_value)*(m1+o)); /* m1 + o */