From 811741eb8e47544086537028c5bebfd8ced7c5bd Mon Sep 17 00:00:00 2001 From: "Yukihiro \"Matz\" Matsumoto" Date: Tue, 24 Feb 2026 09:01:19 +0900 Subject: [PATCH] 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 --- .../mruby-bin-debugger/tools/mrdb/cmdbreak.c | 36 +++++++------------ 1 file changed, 13 insertions(+), 23 deletions(-) diff --git a/mrbgems/mruby-bin-debugger/tools/mrdb/cmdbreak.c b/mrbgems/mruby-bin-debugger/tools/mrdb/cmdbreak.c index 151c403b6..7dff7e2b2 100644 --- a/mrbgems/mruby-bin-debugger/tools/mrdb/cmdbreak.c +++ b/mrbgems/mruby-bin-debugger/tools/mrdb/cmdbreak.c @@ -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); }