Avoid mrb_check_string_type() in raising exception; fix #3506

The change may reduce flexibility, but I believe no one wants
that level of flexibility here.
parent 27fc76f6
...@@ -435,8 +435,8 @@ mrb_bug(mrb_state *mrb, const char *fmt, ...) ...@@ -435,8 +435,8 @@ mrb_bug(mrb_state *mrb, const char *fmt, ...)
exit(EXIT_FAILURE); exit(EXIT_FAILURE);
} }
static mrb_value MRB_API mrb_value
make_exception(mrb_state *mrb, int argc, const mrb_value *argv, mrb_bool isstr) mrb_make_exception(mrb_state *mrb, int argc, const mrb_value *argv)
{ {
mrb_value mesg; mrb_value mesg;
int n; int n;
...@@ -448,12 +448,9 @@ make_exception(mrb_state *mrb, int argc, const mrb_value *argv, mrb_bool isstr) ...@@ -448,12 +448,9 @@ make_exception(mrb_state *mrb, int argc, const mrb_value *argv, mrb_bool isstr)
case 1: case 1:
if (mrb_nil_p(argv[0])) if (mrb_nil_p(argv[0]))
break; break;
if (isstr) { if (mrb_string_p(argv[0])) {
mesg = mrb_check_string_type(mrb, argv[0]); mesg = mrb_exc_new_str(mrb, E_RUNTIME_ERROR, argv[0]);
if (!mrb_nil_p(mesg)) { break;
mesg = mrb_exc_new_str(mrb, E_RUNTIME_ERROR, mesg);
break;
}
} }
n = 0; n = 0;
goto exception_call; goto exception_call;
...@@ -488,12 +485,6 @@ exception_call: ...@@ -488,12 +485,6 @@ exception_call:
return mesg; return mesg;
} }
MRB_API mrb_value
mrb_make_exception(mrb_state *mrb, int argc, const mrb_value *argv)
{
return make_exception(mrb, argc, argv, TRUE);
}
MRB_API void MRB_API void
mrb_sys_fail(mrb_state *mrb, const char *mesg) mrb_sys_fail(mrb_state *mrb, const char *mesg)
{ {
......
...@@ -859,8 +859,8 @@ mrb_f_raise(mrb_state *mrb, mrb_value self) ...@@ -859,8 +859,8 @@ mrb_f_raise(mrb_state *mrb, mrb_value self)
mrb_raise(mrb, E_RUNTIME_ERROR, ""); mrb_raise(mrb, E_RUNTIME_ERROR, "");
break; break;
case 1: case 1:
a[1] = mrb_check_string_type(mrb, a[0]); if (mrb_string_p(a[0])) {
if (!mrb_nil_p(a[1])) { a[1] = a[0];
argc = 2; argc = 2;
a[0] = mrb_obj_value(E_RUNTIME_ERROR); a[0] = mrb_obj_value(E_RUNTIME_ERROR);
} }
......
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