Revert e2e6554b not to use `MRB_TRY()`; close #5088

`MRB_TRY()` does not work when compiled by C compiler with `cxx_exception`,
due to the mixture of `setjmp()` used by `mirb.c` and `throw` used by
the core.  The original intension of e2e6554b is to protect code from
signal interruption, but the signal interruption is not well-defined in
mruby anyway.
parent 041351fb
...@@ -525,10 +525,7 @@ main(int argc, char **argv) ...@@ -525,10 +525,7 @@ main(int argc, char **argv)
while (TRUE) { while (TRUE) {
char *utf8; char *utf8;
struct mrb_jmpbuf c_jmp;
MRB_TRY(&c_jmp);
mrb->jmp = &c_jmp;
if (args.rfp) { if (args.rfp) {
if (fgets(last_code_line, sizeof(last_code_line)-1, args.rfp) != NULL) if (fgets(last_code_line, sizeof(last_code_line)-1, args.rfp) != NULL)
goto done; goto done;
...@@ -687,11 +684,6 @@ main(int argc, char **argv) ...@@ -687,11 +684,6 @@ main(int argc, char **argv)
} }
mrb_parser_free(parser); mrb_parser_free(parser);
cxt->lineno++; cxt->lineno++;
MRB_CATCH(&c_jmp) {
p(mrb, mrb_obj_value(mrb->exc), 0);
mrb->exc = 0;
}
MRB_END_EXC(&c_jmp);
} }
#ifdef ENABLE_READLINE #ifdef ENABLE_READLINE
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment