diff options
| author | Yukihiro "Matz" Matsumoto <[email protected]> | 2013-11-05 00:13:01 +0900 |
|---|---|---|
| committer | Yukihiro "Matz" Matsumoto <[email protected]> | 2013-11-05 00:13:01 +0900 |
| commit | f80401de6c9b7dd9e0676c4414aae7a6e033ac5f (patch) | |
| tree | 27663cfee57ca8652671087e01b99d69f814a32a /src/vm.c | |
| parent | e386760cc7b7958a8948b0a23b35b3a9df30c354 (diff) | |
| parent | 82c5b486e0d788aa7a391574c59959da2216990e (diff) | |
| download | mruby-f80401de6c9b7dd9e0676c4414aae7a6e033ac5f.tar.gz mruby-f80401de6c9b7dd9e0676c4414aae7a6e033ac5f.zip | |
resolved conflicts and updated to latest return value change of mrb_generate_code()
Diffstat (limited to 'src/vm.c')
| -rw-r--r-- | src/vm.c | 10 |
1 files changed, 8 insertions, 2 deletions
@@ -547,7 +547,7 @@ void mrb_gv_val_set(mrb_state *mrb, mrb_sym sym, mrb_value val); #define CALL_MAXARGS 127 mrb_value -mrb_run(mrb_state *mrb, struct RProc *proc, mrb_value self) +mrb_context_run(mrb_state *mrb, struct RProc *proc, mrb_value self, unsigned int stack_keep) { /* mrb_assert(mrb_proc_cfunc_p(proc)) */ mrb_irep *irep = proc->body.irep; @@ -595,7 +595,7 @@ mrb_run(mrb_state *mrb, struct RProc *proc, mrb_value self) if (!mrb->c->stack) { stack_init(mrb); } - stack_extend(mrb, irep->nregs, mrb->c->ci->argc + 2); /* argc + 2 (receiver and block) */ + stack_extend(mrb, irep->nregs, stack_keep); mrb->c->ci->err = pc; mrb->c->ci->proc = proc; mrb->c->ci->nregs = irep->nregs + 1; @@ -2145,6 +2145,12 @@ mrb_run(mrb_state *mrb, struct RProc *proc, mrb_value self) END_DISPATCH; } +mrb_value +mrb_run(mrb_state *mrb, struct RProc *proc, mrb_value self) +{ + return mrb_context_run(mrb, proc, self, mrb->c->ci->argc + 2); /* argc + 2 (receiver and block) */ +} + void mrb_longjmp(mrb_state *mrb) { |
