error.c (mrb_bug): avoid formatting in mrb_bug()

Since mrb_bug() would be called under the abnormal situation (and should
not be called if possible), the process should be minimal.
This commit is contained in:
Yukihiro "Matz" Matsumoto
2023-07-14 21:48:11 +09:00
parent d6d434eb3f
commit 82a48bd455
2 changed files with 4 additions and 9 deletions
+1 -1
View File
@@ -1357,7 +1357,7 @@ MRB_API mrb_noreturn void mrb_name_error(mrb_state *mrb, mrb_sym id, const char
MRB_API mrb_noreturn void mrb_frozen_error(mrb_state *mrb, void *frozen_obj);
MRB_API mrb_noreturn void mrb_argnum_error(mrb_state *mrb, mrb_int argc, int min, int max);
MRB_API void mrb_warn(mrb_state *mrb, const char *fmt, ...);
MRB_API mrb_noreturn void mrb_bug(mrb_state *mrb, const char *fmt, ...);
MRB_API mrb_noreturn void mrb_bug(mrb_state *mrb, const char *mesg);
MRB_API void mrb_print_backtrace(mrb_state *mrb);
MRB_API void mrb_print_error(mrb_state *mrb);
/* function for `raisef` formatting */
+3 -8
View File
@@ -443,17 +443,12 @@ mrb_warn(mrb_state *mrb, const char *fmt, ...)
}
MRB_API mrb_noreturn void
mrb_bug(mrb_state *mrb, const char *fmt, ...)
mrb_bug(mrb_state *mrb, const char *mesg)
{
#ifndef MRB_NO_STDIO
va_list ap;
mrb_value str;
va_start(ap, fmt);
str = mrb_vformat(mrb, fmt, ap);
fputs("bug: ", stderr);
fwrite(RSTRING_PTR(str), RSTRING_LEN(str), 1, stderr);
va_end(ap);
fputs(mesg, stderr);
fputs("\n", stderr);
#endif
exit(EXIT_FAILURE);
}