summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorYukihiro "Matz" Matsumoto <[email protected]>2012-07-28 06:44:04 -0700
committerYukihiro "Matz" Matsumoto <[email protected]>2012-07-28 06:44:04 -0700
commit5d58bd0d78de41d707cdbde3f48908da01d34ec6 (patch)
tree91f104bd4d3e5ff7ec39033d55b366bf9e0c2f3b
parent7f8076ef90be326d7a199baad32d0a84ebbec6d3 (diff)
parenta985cf7945d6aec6d483f76b9427382bb5d984e1 (diff)
downloadmruby-5d58bd0d78de41d707cdbde3f48908da01d34ec6.tar.gz
mruby-5d58bd0d78de41d707cdbde3f48908da01d34ec6.zip
Merge pull request #397 from masamitsu-murase/modify_op_send
Modify ci->nregs.
-rw-r--r--src/vm.c7
1 files changed, 6 insertions, 1 deletions
diff --git a/src/vm.c b/src/vm.c
index 9aa21eed4..e8dcf1b80 100644
--- a/src/vm.c
+++ b/src/vm.c
@@ -718,7 +718,12 @@ mrb_run(mrb_state *mrb, struct RProc *proc, mrb_value self)
mrb->stack += a;
if (MRB_PROC_CFUNC_P(m)) {
- ci->nregs = n + 1;
+ if (n == CALL_MAXARGS) {
+ ci->nregs = 3;
+ }
+ else {
+ ci->nregs = n + 2;
+ }
mrb->stack[0] = m->body.func(mrb, recv);
mrb->arena_idx = ai;
if (mrb->exc) goto L_RAISE;