mirror of
https://github.com/mruby/mruby
synced 2026-06-08 16:11:16 +00:00
keep stack with nlocals instead of nregs; fix #1706
This commit is contained in:
@@ -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);
|
||||
|
||||
Reference in New Issue
Block a user