diff --git a/mrbgems/mruby-bin-debugger/tools/mrdb/cmdmisc.c b/mrbgems/mruby-bin-debugger/tools/mrdb/cmdmisc.c index 4cf635b41..36fb0c1fa 100644 --- a/mrbgems/mruby-bin-debugger/tools/mrdb/cmdmisc.c +++ b/mrbgems/mruby-bin-debugger/tools/mrdb/cmdmisc.c @@ -501,9 +501,7 @@ dbgcmd_quit(mrb_state *mrb, mrdb_state *mrdb) } if (mrdb->dbg->xm == DBG_QUIT) { - struct RClass *exc; - exc = mrb_define_class(mrb, "DebuggerExit", E_EXCEPTION); - mrb_raise(mrb, exc, "Exit mrdb"); + raise_debugger_exception(mrb, "DebuggerExit", "Exit mrdb"); } return DBGST_PROMPT; } diff --git a/mrbgems/mruby-bin-debugger/tools/mrdb/cmdrun.c b/mrbgems/mruby-bin-debugger/tools/mrdb/cmdrun.c index 1cd463eb0..dd914af77 100644 --- a/mrbgems/mruby-bin-debugger/tools/mrdb/cmdrun.c +++ b/mrbgems/mruby-bin-debugger/tools/mrdb/cmdrun.c @@ -17,10 +17,8 @@ dbgcmd_run(mrb_state *mrb, mrdb_state *mrdb) else { dbg->xm = DBG_QUIT; if (dbg->xphase == DBG_PHASE_RUNNING){ - struct RClass *exc; puts("Start it from the beginning"); - exc = mrb_define_class(mrb, "DebuggerRestart", E_EXCEPTION); - mrb_raise(mrb, exc, "Restart mrdb"); + raise_debugger_exception(mrb, "DebuggerRestart", "Restart mrdb"); } } diff --git a/mrbgems/mruby-bin-debugger/tools/mrdb/mrdb.h b/mrbgems/mruby-bin-debugger/tools/mrdb/mrdb.h index 1d379f4c7..df7680aff 100644 --- a/mrbgems/mruby-bin-debugger/tools/mrdb/mrdb.h +++ b/mrbgems/mruby-bin-debugger/tools/mrdb/mrdb.h @@ -7,6 +7,7 @@ #define MRDB_H #include +#include #include "mrdbconf.h" @@ -136,6 +137,13 @@ typedef struct mrdb_state { typedef dbgcmd_state (*debug_command_func)(mrb_state*, mrdb_state*); +static inline mrb_noreturn void +raise_debugger_exception(mrb_state *mrb, const char *name, const char *msg) +{ + struct RClass *exc = mrb_define_class(mrb, name, E_EXCEPTION); + mrb_raise(mrb, exc, msg); +} + /* cmdrun.c */ dbgcmd_state dbgcmd_run(mrb_state*, mrdb_state*); dbgcmd_state dbgcmd_continue(mrb_state*, mrdb_state*);