From edd6c17c1e21e8ecc65241625fecb60e8deb4455 Mon Sep 17 00:00:00 2001 From: "Yukihiro \"Matz\" Matsumoto" Date: Wed, 13 Nov 2013 15:48:13 +0900 Subject: load_exec() no longer return fixnum value for no_exec; should close #1569 --- src/parse.y | 2 +- tools/mrbc/mrbc.c | 5 ++--- 2 files changed, 3 insertions(+), 4 deletions(-) diff --git a/src/parse.y b/src/parse.y index 8b4348a77..63204dfb0 100644 --- a/src/parse.y +++ b/src/parse.y @@ -5381,7 +5381,7 @@ load_exec(mrb_state *mrb, parser_state *p, mrbc_context *c) if (proc == NULL) { static const char msg[] = "codegen error"; mrb->exc = mrb_obj_ptr(mrb_exc_new(mrb, E_SCRIPT_ERROR, msg, sizeof(msg) - 1)); - return mrb_nil_value(); + return mrb_undef_value(); } if (c) { if (c->dump_result) codedump_all(mrb, proc); diff --git a/tools/mrbc/mrbc.c b/tools/mrbc/mrbc.c index 27e151ad2..46d0d95ca 100644 --- a/tools/mrbc/mrbc.c +++ b/tools/mrbc/mrbc.c @@ -212,11 +212,10 @@ load_file(mrb_state *mrb, struct mrbc_args *args) result = mrb_load_file_cxt(mrb, infile, c); if (need_close) fclose(infile); - if (mrb_undef_p(result) || mrb_fixnum(result) < 0) { - mrbc_context_free(mrb, c); + mrbc_context_free(mrb, c); + if (mrb_undef_p(result)) { return mrb_nil_value(); } - mrbc_context_free(mrb, c); return result; } -- cgit v1.2.3