Merge pull request #5687 from dearblue/sysfail

Must the `mrb_sys_fail()` function raise an exception
This commit is contained in:
Yukihiro "Matz" Matsumoto
2022-04-12 08:59:50 +09:00
committed by GitHub
2 changed files with 4 additions and 5 deletions
+1 -1
View File
@@ -23,7 +23,7 @@ struct RException {
#define mrb_exc_ptr(v) ((struct RException*)mrb_ptr(v))
#define MRB_EXC_MESG_STRING_FLAG 0x100
MRB_API void mrb_sys_fail(mrb_state *mrb, const char *mesg);
MRB_API mrb_noreturn void mrb_sys_fail(mrb_state *mrb, const char *mesg);
MRB_API mrb_value mrb_exc_new_str(mrb_state *mrb, struct RClass* c, mrb_value str);
#define mrb_exc_new_lit(mrb, c, lit) mrb_exc_new_str(mrb, c, mrb_str_new_lit(mrb, lit))
MRB_API mrb_value mrb_make_exception(mrb_state *mrb, mrb_int argc, const mrb_value *argv);
+3 -4
View File
@@ -521,7 +521,7 @@ exception_call:
return mesg;
}
MRB_API void
MRB_API mrb_noreturn void
mrb_sys_fail(mrb_state *mrb, const char *mesg)
{
struct RClass *sce;
@@ -537,9 +537,8 @@ mrb_sys_fail(mrb_state *mrb, const char *mesg)
mrb_funcall_id(mrb, mrb_obj_value(sce), MRB_SYM(_sys_fail), 1, mrb_fixnum_value(no));
}
}
else {
mrb_raise(mrb, E_RUNTIME_ERROR, mesg);
}
mrb_raise(mrb, E_RUNTIME_ERROR, mesg);
}
MRB_API mrb_noreturn void