diff options
| author | Li Yazhou <[email protected]> | 2014-02-14 11:16:56 +0800 |
|---|---|---|
| committer | Li Yazhou <[email protected]> | 2014-02-14 11:16:56 +0800 |
| commit | 9ebfeac11171b061dd2021b9de8ff5dc74a58324 (patch) | |
| tree | 0a62413a4311f0b6e973e0c913cdbea7f81efe4b /mrbgems/mruby-bin-mirb | |
| parent | ba8a8e75c777d29bdbdcea56513d188949f131ec (diff) | |
| download | mruby-9ebfeac11171b061dd2021b9de8ff5dc74a58324.tar.gz mruby-9ebfeac11171b061dd2021b9de8ff5dc74a58324.zip | |
keep stack with nlocals instead of nregs; fix #1706
Diffstat (limited to 'mrbgems/mruby-bin-mirb')
| -rw-r--r-- | mrbgems/mruby-bin-mirb/tools/mirb/mirb.c | 8 |
1 files changed, 3 insertions, 5 deletions
diff --git a/mrbgems/mruby-bin-mirb/tools/mirb/mirb.c b/mrbgems/mruby-bin-mirb/tools/mirb/mirb.c index 183003307..a9d6850a5 100644 --- a/mrbgems/mruby-bin-mirb/tools/mirb/mirb.c +++ b/mrbgems/mruby-bin-mirb/tools/mirb/mirb.c @@ -251,8 +251,7 @@ main(int argc, char **argv) int n; mrb_bool code_block_open = FALSE; int ai; - mrb_bool first_command = TRUE; - unsigned int nregs; + unsigned int stack_keep = 0; /* new interpreter instance */ mrb = mrb_open(); @@ -365,12 +364,12 @@ main(int argc, char **argv) mrb_codedump_all(mrb, proc); } /* pass a proc for evaulation */ - nregs = first_command ? 0: proc->body.irep->nregs; /* evaluate the bytecode */ result = mrb_context_run(mrb, proc, mrb_top_self(mrb), - nregs); + stack_keep); + stack_keep = proc->body.irep->nlocals; /* did an exception occur? */ if (mrb->exc) { p(mrb, mrb_obj_value(mrb->exc), 0); @@ -390,7 +389,6 @@ main(int argc, char **argv) } mrb_parser_free(parser); cxt->lineno++; - first_command = FALSE; } mrbc_context_free(mrb, cxt); mrb_close(mrb); |
