diff options
| author | Daniel Bovensiepen <[email protected]> | 2012-09-20 18:40:31 +0800 |
|---|---|---|
| committer | Daniel Bovensiepen <[email protected]> | 2012-09-20 18:40:31 +0800 |
| commit | 3d323802de816d9932179072d5f98fd6143edc9d (patch) | |
| tree | 776cccd2f29e96ba53e5f7bf73c60885d98d2036 | |
| parent | a8d418d5b128bc1f63092fafd4037029b36c1748 (diff) | |
| parent | 15cf8fdea4a6598aa470e698e8cbc9b9b492319d (diff) | |
| download | mruby-3d323802de816d9932179072d5f98fd6143edc9d.tar.gz mruby-3d323802de816d9932179072d5f98fd6143edc9d.zip | |
Merge remote-tracking branch 'upstream/master' into mrbgems
| -rw-r--r-- | src/vm.c | 7 |
1 files changed, 6 insertions, 1 deletions
@@ -843,12 +843,17 @@ mrb_run(mrb_state *mrb, struct RProc *proc, mrb_value self) /* prepare stack */ if (MRB_PROC_CFUNC_P(m)) { - mrb->stack[0] = m->body.func(mrb, recv); + recv = m->body.func(mrb, recv); mrb->arena_idx = ai; if (mrb->exc) goto L_RAISE; /* pop stackpos */ regs = mrb->stack = mrb->stbase + mrb->ci->stackidx; + regs[mrb->ci->acc] = recv; cipop(mrb); + irep = mrb->ci->proc->body.irep; + pool = irep->pool; + syms = irep->syms; + pc = mrb->ci->pc; NEXT; } else { |
