From 070365117b5727394e271399c5738a27bf9716d5 Mon Sep 17 00:00:00 2001 From: Tom Tromey Date: Fri, 29 Sep 2017 21:49:04 -0600 Subject: Change record_full_gdb_operation_disable_set not to return a cleanup This changes record_full_gdb_operation_disable_set to return a scoped_restore rather than a cleanup, and fixes all the users. ChangeLog 2017-10-03 Tom Tromey * record-full.h (record_full_gdb_operation_disable_set): Return scoped_restore_tmpl. * infrun.c (adjust_pc_after_break): Update. (handle_signal_stop): Update. * record-full.c (record_full_gdb_operation_disable_set): Return scoped_restore_tmpl. (record_full_wait_1, record_full_insert_breakpoint) (record_full_remove_breakpoint, record_full_save) (record_full_goto_insn): Update. --- gdb/infrun.c | 15 +++++++-------- 1 file changed, 7 insertions(+), 8 deletions(-) (limited to 'gdb/infrun.c') diff --git a/gdb/infrun.c b/gdb/infrun.c index fba0079..e82f61f 100644 --- a/gdb/infrun.c +++ b/gdb/infrun.c @@ -4178,10 +4178,11 @@ adjust_pc_after_break (struct thread_info *thread, || (target_is_non_stop_p () && moribund_breakpoint_here_p (aspace, breakpoint_pc))) { - struct cleanup *old_cleanups = make_cleanup (null_cleanup, NULL); + gdb::optional> restore_operation_disable; if (record_full_is_used ()) - record_full_gdb_operation_disable_set (); + restore_operation_disable.emplace + (record_full_gdb_operation_disable_set ()); /* When using hardware single-step, a SIGTRAP is reported for both a completed single-step and a software breakpoint. Need to @@ -4205,8 +4206,6 @@ adjust_pc_after_break (struct thread_info *thread, || (thread->stepped_breakpoint && thread->prev_pc == breakpoint_pc)) regcache_write_pc (regcache, breakpoint_pc); - - do_cleanups (old_cleanups); } } @@ -6008,14 +6007,14 @@ handle_signal_stop (struct execution_control_state *ecs) decr_pc = gdbarch_decr_pc_after_break (gdbarch); if (decr_pc != 0) { - struct cleanup *old_cleanups = make_cleanup (null_cleanup, NULL); + gdb::optional> + restore_operation_disable; if (record_full_is_used ()) - record_full_gdb_operation_disable_set (); + restore_operation_disable.emplace + (record_full_gdb_operation_disable_set ()); regcache_write_pc (regcache, stop_pc + decr_pc); - - do_cleanups (old_cleanups); } } else -- cgit v1.1