Skip to content

Commit

Permalink
error.c: move variable declaration to initialization
Browse files Browse the repository at this point in the history
  • Loading branch information
matz committed Apr 29, 2024
1 parent 7cea1cd commit c9ae8df
Showing 1 changed file with 20 additions and 25 deletions.
45 changes: 20 additions & 25 deletions src/error.c
Expand Up @@ -87,14 +87,13 @@ exc_initialize(mrb_state *mrb, mrb_value exc)
static mrb_value
exc_exception(mrb_state *mrb, mrb_value self)
{
mrb_value exc;
mrb_value a;
mrb_int argc;
mrb_int argc = mrb_get_args(mrb, "|o", &a);

argc = mrb_get_args(mrb, "|o", &a);
if (argc == 0) return self;
if (mrb_obj_equal(mrb, self, a)) return self;
exc = mrb_obj_clone(mrb, self);

mrb_value exc = mrb_obj_clone(mrb, self);
mrb_exc_mesg_set(mrb, mrb_exc_ptr(exc), a);

return exc;
Expand All @@ -112,12 +111,11 @@ static mrb_value
exc_to_s(mrb_state *mrb, mrb_value exc)
{
mrb_value mesg = mrb_exc_mesg_get(mrb, mrb_exc_ptr(exc));
struct RObject *p;

if (!mrb_string_p(mesg)) {
return mrb_str_new_cstr(mrb, mrb_obj_classname(mrb, exc));
}
p = mrb_obj_ptr(mesg);
struct RObject *p = mrb_obj_ptr(mesg);
if (!p->c) {
p->c = mrb->string_class;
}
Expand Down Expand Up @@ -384,10 +382,10 @@ MRB_API mrb_value
mrb_format(mrb_state *mrb, const char *format, ...)
{
va_list ap;
mrb_value str;

va_start(ap, format);
str = mrb_vformat(mrb, format, ap);

mrb_value str = mrb_vformat(mrb, format, ap);
va_end(ap);

return str;
Expand All @@ -396,18 +394,17 @@ mrb_format(mrb_state *mrb, const char *format, ...)
static mrb_value
error_va(mrb_state *mrb, struct RClass *c, const char *fmt, va_list ap)
{
mrb_value mesg = mrb_vformat(mrb, fmt, ap);
return mrb_exc_new_str(mrb, c, mesg);
return mrb_exc_new_str(mrb, c, mrb_vformat(mrb, fmt, ap));
}

MRB_API mrb_noreturn void
mrb_raisef(mrb_state *mrb, struct RClass *c, const char *fmt, ...)
{
va_list ap;
mrb_value exc;

va_start(ap, fmt);
exc = error_va(mrb, c, fmt, ap);

mrb_value exc = error_va(mrb, c, fmt, ap);
va_end(ap);

mrb_exc_raise(mrb, exc);
Expand All @@ -417,10 +414,10 @@ MRB_API mrb_noreturn void
mrb_name_error(mrb_state *mrb, mrb_sym id, const char *fmt, ...)
{
va_list ap;
mrb_value exc;

va_start(ap, fmt);
exc = error_va(mrb, E_NAME_ERROR, fmt, ap);

mrb_value exc = error_va(mrb, E_NAME_ERROR, fmt, ap);
va_end(ap);
mrb_iv_set(mrb, exc, MRB_IVSYM(name), mrb_symbol_value(id));
mrb_exc_raise(mrb, exc);
Expand All @@ -431,10 +428,10 @@ mrb_warn(mrb_state *mrb, const char *fmt, ...)
{
#ifndef MRB_NO_STDIO
va_list ap;
mrb_value str;

va_start(ap, fmt);
str = mrb_vformat(mrb, fmt, ap);

mrb_value str = mrb_vformat(mrb, fmt, ap);
fputs("warning: ", stderr);
fwrite(RSTRING_PTR(str), RSTRING_LEN(str), 1, stderr);
putc('\n', stderr);
Expand Down Expand Up @@ -500,10 +497,10 @@ MRB_API mrb_noreturn void
mrb_no_method_error(mrb_state *mrb, mrb_sym id, mrb_value args, char const* fmt, ...)
{
va_list ap;
mrb_value exc;

va_start(ap, fmt);
exc = error_va(mrb, E_NOMETHOD_ERROR, fmt, ap);

mrb_value exc = error_va(mrb, E_NOMETHOD_ERROR, fmt, ap);
va_end(ap);
mrb_iv_set(mrb, exc, MRB_IVSYM(name), mrb_symbol_value(id));
mrb_iv_set(mrb, exc, MRB_IVSYM(args), args);
Expand Down Expand Up @@ -558,7 +555,7 @@ mrb_core_init_protect(mrb_state *mrb, void (*body)(mrb_state*, void*), void *opa
{
struct mrb_jmpbuf *prev_jmp = mrb->jmp;
struct mrb_jmpbuf c_jmp;
int err = 1;
volatile int err = 1;

MRB_TRY(&c_jmp) {
mrb->jmp = &c_jmp;
Expand Down Expand Up @@ -660,9 +657,7 @@ mrb_check_error(mrb_state *mrb)
void
mrb_init_exception(mrb_state *mrb)
{
struct RClass *exception, *script_error, *stack_error, *nomem_error;

mrb->eException_class = exception = mrb_define_class_id(mrb, MRB_SYM(Exception), mrb->object_class); /* 15.2.22 */
struct RClass *exception = mrb->eException_class = mrb_define_class_id(mrb, MRB_SYM(Exception), mrb->object_class); /* 15.2.22 */
MRB_SET_INSTANCE_TT(exception, MRB_TT_EXCEPTION);
mrb_define_class_method_id(mrb, exception, MRB_SYM(exception), mrb_instance_new, MRB_ARGS_OPT(1));
mrb_define_method_id(mrb, exception, MRB_SYM(exception), exc_exception, MRB_ARGS_OPT(1));
Expand All @@ -674,12 +669,12 @@ mrb_init_exception(mrb_state *mrb)

mrb->eStandardError_class = mrb_define_class_id(mrb, MRB_SYM(StandardError), mrb->eException_class); /* 15.2.23 */
mrb_define_class_id(mrb, MRB_SYM(RuntimeError), E_STANDARD_ERROR); /* 15.2.28 */
script_error = mrb_define_class_id(mrb, MRB_SYM(ScriptError), exception); /* 15.2.37 */
struct RClass *script_error = mrb_define_class_id(mrb, MRB_SYM(ScriptError), exception); /* 15.2.37 */
mrb_define_class_id(mrb, MRB_SYM(SyntaxError), script_error); /* 15.2.38 */
stack_error = mrb_define_class_id(mrb, MRB_SYM(SystemStackError), exception);
struct RClass *stack_error = mrb_define_class_id(mrb, MRB_SYM(SystemStackError), exception);
mrb->stack_err = mrb_obj_ptr(mrb_exc_new_lit(mrb, stack_error, "stack level too deep"));

nomem_error = mrb_define_class_id(mrb, MRB_SYM(NoMemoryError), exception);
struct RClass *nomem_error = mrb_define_class_id(mrb, MRB_SYM(NoMemoryError), exception);
mrb->nomem_err = mrb_obj_ptr(mrb_exc_new_lit(mrb, nomem_error, "Out of memory"));
#ifdef MRB_GC_FIXED_ARENA
mrb->arena_err = mrb_obj_ptr(mrb_exc_new_lit(mrb, nomem_error, "arena overflow error"));
Expand Down

0 comments on commit c9ae8df

Please sign in to comment.