Cleanup delete_breakpoint cleanups.

This commit is contained in:
Andrew Cagney 2000-05-15 05:54:02 +00:00
parent 3339cf8b68
commit 4d6140d95e
5 changed files with 41 additions and 8 deletions

View file

@ -1,3 +1,15 @@
Mon May 15 14:06:23 2000 Andrew Cagney <cagney@b1.cygnus.com>
* breakpoint.h (make_cleanup_delete_breakpoint,
make_exec_cleanup_delete_breakpoint): Declare.
* breakpoint.c (make_cleanup_delete_breakpoint,
make_exec_cleanup_delete_breakpoint,
do_delete_breakpoint_cleanup): New fuctions.
* infcmd.c (finish_command), hppa-tdep.c (hppa_pop_frame),
breakpoint.c (until_break_command, until_break_command): Replace
call to make_cleanup / make_exec_cleanup.
Mon May 15 13:25:57 2000 Andrew Cagney <cagney@b1.cygnus.com> Mon May 15 13:25:57 2000 Andrew Cagney <cagney@b1.cygnus.com>
* defs.h (core_addr_greaterthan, core_addr_lessthan), utils.c * defs.h (core_addr_greaterthan, core_addr_lessthan), utils.c

View file

@ -5752,10 +5752,9 @@ until_break_command (arg, from_tty)
breakpoint = set_momentary_breakpoint (sal, selected_frame, bp_until); breakpoint = set_momentary_breakpoint (sal, selected_frame, bp_until);
if (!event_loop_p || !target_can_async_p ()) if (!event_loop_p || !target_can_async_p ())
old_chain = make_cleanup ((make_cleanup_func) delete_breakpoint, old_chain = make_cleanup_delete_breakpoint (breakpoint);
breakpoint);
else else
old_chain = make_exec_cleanup ((make_cleanup_func) delete_breakpoint, breakpoint); old_chain = make_exec_cleanup_delete_breakpoint (breakpoint);
/* If we are running asynchronously, and the target supports async /* If we are running asynchronously, and the target supports async
execution, we are not waiting for the target to stop, in the call execution, we are not waiting for the target to stop, in the call
@ -5786,9 +5785,9 @@ until_break_command (arg, from_tty)
sal.pc = prev_frame->pc; sal.pc = prev_frame->pc;
breakpoint = set_momentary_breakpoint (sal, prev_frame, bp_until); breakpoint = set_momentary_breakpoint (sal, prev_frame, bp_until);
if (!event_loop_p || !target_can_async_p ()) if (!event_loop_p || !target_can_async_p ())
make_cleanup ((make_cleanup_func) delete_breakpoint, breakpoint); make_cleanup_delete_breakpoint (breakpoint);
else else
make_exec_cleanup ((make_cleanup_func) delete_breakpoint, breakpoint); make_exec_cleanup_delete_breakpoint (breakpoint);
} }
proceed (-1, TARGET_SIGNAL_DEFAULT, 0); proceed (-1, TARGET_SIGNAL_DEFAULT, 0);
@ -7068,6 +7067,24 @@ delete_breakpoint (bpt)
free ((PTR) bpt); free ((PTR) bpt);
} }
static void
do_delete_breakpoint_cleanup (void *b)
{
delete_breakpoint (b);
}
struct cleanup *
make_cleanup_delete_breakpoint (struct breakpoint *b)
{
return make_cleanup (do_delete_breakpoint_cleanup, b);
}
struct cleanup *
make_exec_cleanup_delete_breakpoint (struct breakpoint *b)
{
return make_exec_cleanup (do_delete_breakpoint_cleanup, b);
}
void void
delete_command (arg, from_tty) delete_command (arg, from_tty)
char *arg; char *arg;

View file

@ -543,6 +543,10 @@ extern void mark_breakpoints_out PARAMS ((void));
extern void breakpoint_init_inferior PARAMS ((enum inf_context)); extern void breakpoint_init_inferior PARAMS ((enum inf_context));
extern struct cleanup *make_cleanup_delete_breakpoint (struct breakpoint *);
extern struct cleanup *make_exec_cleanup_delete_breakpoint (struct breakpoint *);
extern void delete_breakpoint PARAMS ((struct breakpoint *)); extern void delete_breakpoint PARAMS ((struct breakpoint *));
extern void breakpoint_auto_delete PARAMS ((bpstat)); extern void breakpoint_auto_delete PARAMS ((bpstat));

View file

@ -1618,7 +1618,7 @@ hppa_pop_frame ()
breakpoint->silent = 1; breakpoint->silent = 1;
/* So we can clean things up. */ /* So we can clean things up. */
old_chain = make_cleanup ((make_cleanup_func) delete_breakpoint, breakpoint); old_chain = make_cleanup_delete_breakpoint (breakpoint);
/* Start up the inferior. */ /* Start up the inferior. */
clear_proceed_status (); clear_proceed_status ();

View file

@ -1194,9 +1194,9 @@ finish_command (arg, from_tty)
breakpoint = set_momentary_breakpoint (sal, frame, bp_finish); breakpoint = set_momentary_breakpoint (sal, frame, bp_finish);
if (!event_loop_p || !target_can_async_p ()) if (!event_loop_p || !target_can_async_p ())
old_chain = make_cleanup ((make_cleanup_func) delete_breakpoint, breakpoint); old_chain = make_cleanup_delete_breakpoint (breakpoint);
else else
old_chain = make_exec_cleanup ((make_cleanup_func) delete_breakpoint, breakpoint); old_chain = make_exec_cleanup_delete_breakpoint (breakpoint);
/* Find the function we will return from. */ /* Find the function we will return from. */