summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--gdb/ChangeLog12
-rw-r--r--gdb/breakpoint.c27
-rw-r--r--gdb/breakpoint.h4
-rw-r--r--gdb/hppa-tdep.c2
-rw-r--r--gdb/infcmd.c4
5 files changed, 41 insertions, 8 deletions
diff --git a/gdb/ChangeLog b/gdb/ChangeLog
index 339479145cd..04b6f7927e9 100644
--- a/gdb/ChangeLog
+++ b/gdb/ChangeLog
@@ -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>
* defs.h (core_addr_greaterthan, core_addr_lessthan), utils.c
diff --git a/gdb/breakpoint.c b/gdb/breakpoint.c
index 98bd2367a88..7826a654076 100644
--- a/gdb/breakpoint.c
+++ b/gdb/breakpoint.c
@@ -5752,10 +5752,9 @@ until_break_command (arg, from_tty)
breakpoint = set_momentary_breakpoint (sal, selected_frame, bp_until);
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
- 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
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;
breakpoint = set_momentary_breakpoint (sal, prev_frame, bp_until);
if (!event_loop_p || !target_can_async_p ())
- make_cleanup ((make_cleanup_func) delete_breakpoint, breakpoint);
+ make_cleanup_delete_breakpoint (breakpoint);
else
- make_exec_cleanup ((make_cleanup_func) delete_breakpoint, breakpoint);
+ make_exec_cleanup_delete_breakpoint (breakpoint);
}
proceed (-1, TARGET_SIGNAL_DEFAULT, 0);
@@ -7068,6 +7067,24 @@ delete_breakpoint (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
delete_command (arg, from_tty)
char *arg;
diff --git a/gdb/breakpoint.h b/gdb/breakpoint.h
index 1b4e02aa7b2..12f110f895c 100644
--- a/gdb/breakpoint.h
+++ b/gdb/breakpoint.h
@@ -543,6 +543,10 @@ extern void mark_breakpoints_out PARAMS ((void));
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 breakpoint_auto_delete PARAMS ((bpstat));
diff --git a/gdb/hppa-tdep.c b/gdb/hppa-tdep.c
index f97b3c84eda..e7adf10bb81 100644
--- a/gdb/hppa-tdep.c
+++ b/gdb/hppa-tdep.c
@@ -1618,7 +1618,7 @@ hppa_pop_frame ()
breakpoint->silent = 1;
/* 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. */
clear_proceed_status ();
diff --git a/gdb/infcmd.c b/gdb/infcmd.c
index 162b824a530..19f52602696 100644
--- a/gdb/infcmd.c
+++ b/gdb/infcmd.c
@@ -1194,9 +1194,9 @@ finish_command (arg, from_tty)
breakpoint = set_momentary_breakpoint (sal, frame, bp_finish);
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
- 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. */