diff options
-rw-r--r-- | gdb/ChangeLog | 6 | ||||
-rw-r--r-- | gdb/infcall.c | 13 |
2 files changed, 8 insertions, 11 deletions
diff --git a/gdb/ChangeLog b/gdb/ChangeLog index b10e051..21b72e3 100644 --- a/gdb/ChangeLog +++ b/gdb/ChangeLog @@ -1,4 +1,10 @@ 2019-01-23 Tom Tromey <tom@tromey.com> + Pedro Alves <palves@redhat.com> + + * infcall.c (cleanup_delete_std_terminate_breakpoint): Remove. + (call_function_by_hand_dummy): Use SCOPE_EXIT. + +2019-01-23 Tom Tromey <tom@tromey.com> Andrew Burgess <andrew.burgess@embecosm.com> Pedro Alves <palves@redhat.com> diff --git a/gdb/infcall.c b/gdb/infcall.c index 14b0cbc..6ca479a 100644 --- a/gdb/infcall.c +++ b/gdb/infcall.c @@ -40,6 +40,7 @@ #include "interps.h" #include "thread-fsm.h" #include <algorithm> +#include "common/scope-exit.h" /* If we can't find a function's name from its address, we print this instead. */ @@ -675,13 +676,6 @@ run_inferior_call (struct call_thread_fsm *sm, return caught_error; } -/* A cleanup function that calls delete_std_terminate_breakpoint. */ -static void -cleanup_delete_std_terminate_breakpoint (void *ignore) -{ - delete_std_terminate_breakpoint (); -} - /* See infcall.h. */ struct value * @@ -727,7 +721,6 @@ call_function_by_hand_dummy (struct value *function, struct frame_id dummy_id; struct frame_info *frame; struct gdbarch *gdbarch; - struct cleanup *terminate_bp_cleanup; ptid_t call_thread_ptid; struct gdb_exception e; char name_buf[RAW_FUNCTION_ADDRESS_SIZE]; @@ -1122,8 +1115,7 @@ call_function_by_hand_dummy (struct value *function, dummy_dtor, dummy_dtor_data); /* Register a clean-up for unwind_on_terminating_exception_breakpoint. */ - terminate_bp_cleanup = make_cleanup (cleanup_delete_std_terminate_breakpoint, - NULL); + SCOPE_EXIT { delete_std_terminate_breakpoint (); }; /* - SNIP - SNIP - SNIP - SNIP - SNIP - SNIP - SNIP - SNIP - SNIP - If you're looking to implement asynchronous dummy-frames, then @@ -1184,7 +1176,6 @@ call_function_by_hand_dummy (struct value *function, maybe_remove_breakpoints (); - do_cleanups (terminate_bp_cleanup); gdb_assert (retval != NULL); return retval; } |