From 7457da6aa12450d28816b2d6bc734689fef7f730 Mon Sep 17 00:00:00 2001 From: "Yukihiro \"Matz\" Matsumoto" Date: Tue, 22 Jul 2014 07:29:26 +0900 Subject: exception in instance_eval should not exit mrb_run; fix #2483 --- mrbgems/mruby-eval/src/eval.c | 8 +++++--- 1 file 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); } } -- cgit v1.2.3