mirror of
https://github.com/mruby/mruby
synced 2026-06-08 16:11:16 +00:00
cmdbreak.c: unify delete/enable/disable via dbgcmd_set_breakpoint()
The three commands shared identical dispatch logic. Extract a shared dbgcmd_set_breakpoint() that takes function pointers, reducing each command to a one-line wrapper. Co-authored-by: Claude <noreply@anthropic.com>
This commit is contained in:
@@ -397,40 +397,30 @@ dbgcmd_info_break(mrb_state *mrb, mrdb_state *mrdb)
|
||||
return DBGST_PROMPT;
|
||||
}
|
||||
|
||||
static dbgcmd_state
|
||||
dbgcmd_set_breakpoint(mrb_state *mrb, mrdb_state *mrdb,
|
||||
all_command_func all_func, select_command_func select_func)
|
||||
{
|
||||
if (!exe_set_command_all(mrb, mrdb, all_func)) {
|
||||
exe_set_command_select(mrb, mrdb, select_func);
|
||||
}
|
||||
return DBGST_PROMPT;
|
||||
}
|
||||
|
||||
dbgcmd_state
|
||||
dbgcmd_delete(mrb_state *mrb, mrdb_state *mrdb)
|
||||
{
|
||||
mrb_bool ret = FALSE;
|
||||
|
||||
ret = exe_set_command_all(mrb, mrdb, mrb_debug_delete_break_all);
|
||||
if (ret != TRUE) {
|
||||
exe_set_command_select(mrb, mrdb, mrb_debug_delete_break);
|
||||
}
|
||||
|
||||
return DBGST_PROMPT;
|
||||
return dbgcmd_set_breakpoint(mrb, mrdb, mrb_debug_delete_break_all, mrb_debug_delete_break);
|
||||
}
|
||||
|
||||
dbgcmd_state
|
||||
dbgcmd_enable(mrb_state *mrb, mrdb_state *mrdb)
|
||||
{
|
||||
mrb_bool ret = FALSE;
|
||||
|
||||
ret = exe_set_command_all(mrb, mrdb, mrb_debug_enable_break_all);
|
||||
if (ret != TRUE) {
|
||||
exe_set_command_select(mrb, mrdb, mrb_debug_enable_break);
|
||||
}
|
||||
|
||||
return DBGST_PROMPT;
|
||||
return dbgcmd_set_breakpoint(mrb, mrdb, mrb_debug_enable_break_all, mrb_debug_enable_break);
|
||||
}
|
||||
|
||||
dbgcmd_state
|
||||
dbgcmd_disable(mrb_state *mrb, mrdb_state *mrdb)
|
||||
{
|
||||
mrb_bool ret = FALSE;
|
||||
|
||||
ret = exe_set_command_all(mrb, mrdb, mrb_debug_disable_break_all);
|
||||
if (ret != TRUE) {
|
||||
exe_set_command_select(mrb, mrdb, mrb_debug_disable_break);
|
||||
}
|
||||
return DBGST_PROMPT;
|
||||
return dbgcmd_set_breakpoint(mrb, mrdb, mrb_debug_disable_break_all, mrb_debug_disable_break);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user