[v2,2/8] gdb: make install_breakpoint return a non-owning reference
Commit Message
From: Pedro Alves <pedro@palves.net>
A following patch will want to install a breakpoint and then keep a
non-owning reference to it. Make install_breakpoint return a non-owning
reference, to make that easy.
Co-Authored-By: Simon Marchi <simon.marchi@efficios.com>
Change-Id: I2e8106a784021ff276ce251e24708cbdccc2d479
Approved-By: Andrew Burgess <aburgess@redhat.com>
---
gdb/breakpoint.c | 4 +++-
gdb/breakpoint.h | 8 +++++---
2 files changed, 8 insertions(+), 4 deletions(-)
@@ -7956,7 +7956,7 @@ catchpoint::catchpoint (struct gdbarch *gdbarch, bool temp,
pspace = current_program_space;
}
-void
+breakpoint *
install_breakpoint (int internal, std::unique_ptr<breakpoint> &&arg, int update_gll)
{
breakpoint *b = add_to_breakpoint_chain (std::move (arg));
@@ -7969,6 +7969,8 @@ install_breakpoint (int internal, std::unique_ptr<breakpoint> &&arg, int update_
if (update_gll)
update_global_location_list (UGLL_MAY_INSERT);
+
+ return b;
}
static int
@@ -1480,10 +1480,12 @@ extern void
target and breakpoint_created observers of its existence. If
INTERNAL is non-zero, the breakpoint number will be allocated from
the internal breakpoint count. If UPDATE_GLL is non-zero,
- update_global_location_list will be called. */
+ update_global_location_list will be called.
-extern void install_breakpoint (int internal, std::unique_ptr<breakpoint> &&b,
- int update_gll);
+ Takes ownership of B, and returns a non-owning reference to it. */
+
+extern breakpoint *install_breakpoint
+ (int internal, std::unique_ptr<breakpoint> &&b, int update_gll);
/* Returns the breakpoint ops appropriate for use with with LOCSPEC
and according to IS_TRACEPOINT. Use this to ensure, for example,