diff options
| author | Yukihiro "Matz" Matsumoto <[email protected]> | 2014-11-19 19:27:57 +0900 |
|---|---|---|
| committer | Yukihiro "Matz" Matsumoto <[email protected]> | 2014-11-19 19:27:57 +0900 |
| commit | 88195a7c99b910ef81f64b29149d3246092e3a52 (patch) | |
| tree | 80714395e2111789af976e60b109ad129577e4c6 /src | |
| parent | 4eabf7d91cdd5ef3623c4bd2befbc3d9d082d9f3 (diff) | |
| parent | 820f6d147fb13ade3b69eb87cfee39f85ee4a6ce (diff) | |
| download | mruby-88195a7c99b910ef81f64b29149d3246092e3a52.tar.gz mruby-88195a7c99b910ef81f64b29149d3246092e3a52.zip | |
Merge pull request #2641 from sdottaka/super-fix
Fix an error when calling a method implemented in C by super() with argu...
Diffstat (limited to 'src')
| -rw-r--r-- | src/vm.c | 7 |
1 files changed, 6 insertions, 1 deletions
@@ -1250,7 +1250,12 @@ RETRY_TRY_BLOCK: mrb->c->stack[0] = recv; if (MRB_PROC_CFUNC_P(m)) { - ci->nregs = 0; + if (n == CALL_MAXARGS) { + ci->nregs = 3; + } + else { + ci->nregs = n + 2; + } mrb->c->stack[0] = m->body.func(mrb, recv); mrb_gc_arena_restore(mrb, ai); if (mrb->exc) goto L_RAISE; |
