diff options
| author | Yukihiro "Matz" Matsumoto <[email protected]> | 2014-07-22 07:29:26 +0900 |
|---|---|---|
| committer | Yukihiro "Matz" Matsumoto <[email protected]> | 2014-07-22 07:29:26 +0900 |
| commit | 7457da6aa12450d28816b2d6bc734689fef7f730 (patch) | |
| tree | ebf313d7e9f2c60b88d2f331e89a6aa2f300f761 /mrbgems/mruby-eval/src/eval.c | |
| parent | 4cc9e5d8b17acbebadad1508300f092db775f361 (diff) | |
| download | mruby-7457da6aa12450d28816b2d6bc734689fef7f730.tar.gz mruby-7457da6aa12450d28816b2d6bc734689fef7f730.zip | |
exception in instance_eval should not exit mrb_run; fix #2483
Diffstat (limited to 'mrbgems/mruby-eval/src/eval.c')
| -rw-r--r-- | mrbgems/mruby-eval/src/eval.c | 8 |
1 files changed, 5 insertions, 3 deletions
diff --git a/mrbgems/mruby-eval/src/eval.c b/mrbgems/mruby-eval/src/eval.c index 06baad531..a7bf6ae0f 100644 --- a/mrbgems/mruby-eval/src/eval.c +++ b/mrbgems/mruby-eval/src/eval.c @@ -175,6 +175,8 @@ f_eval(mrb_state *mrb, mrb_value self) mrb_value mrb_obj_instance_eval(mrb_state *mrb, mrb_value self); +#define CI_ACC_SKIP -1 + static mrb_value f_instance_eval(mrb_state *mrb, mrb_value self) { @@ -190,10 +192,10 @@ f_instance_eval(mrb_state *mrb, mrb_value self) mrb_int line = 1; mrb_get_args(mrb, "s|zi", &s, &len, &file, &line); - + mrb->c->ci->acc = CI_ACC_SKIP; return mrb_run(mrb, create_proc_from_string(mrb, s, len, mrb_nil_value(), file, line), self); - } else { - mrb_get_args(mrb, "&", &b); + } + else { return mrb_obj_instance_eval(mrb, self); } } |
