forked from Imagelibrary/binutils-gdb
Use unique_xmalloc_ptr in bp_location
This changes struct bp_location to use a unique_xmalloc_ptr, removing a bit of manual memory management.
This commit is contained in:
@@ -7192,7 +7192,7 @@ set_breakpoint_location_function (struct bp_location *loc)
|
||||
find_pc_partial_function (loc->address, &function_name, NULL, NULL);
|
||||
|
||||
if (function_name)
|
||||
loc->function_name = xstrdup (function_name);
|
||||
loc->function_name = make_unique_xstrdup (function_name);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -12234,11 +12234,6 @@ say_where (struct breakpoint *b)
|
||||
}
|
||||
}
|
||||
|
||||
bp_location::~bp_location ()
|
||||
{
|
||||
xfree (function_name);
|
||||
}
|
||||
|
||||
/* Destructor for the breakpoint base class. */
|
||||
|
||||
breakpoint::~breakpoint ()
|
||||
@@ -13323,7 +13318,7 @@ ambiguous_names_p (struct bp_location *loc)
|
||||
for (l = loc; l != NULL; l = l->next)
|
||||
{
|
||||
const char **slot;
|
||||
const char *name = l->function_name;
|
||||
const char *name = l->function_name.get ();
|
||||
|
||||
/* Allow for some names to be NULL, ignore them. */
|
||||
if (name == NULL)
|
||||
@@ -13642,7 +13637,8 @@ update_breakpoint_locations (struct breakpoint *b,
|
||||
{
|
||||
for (bp_location *l : b->locations ())
|
||||
if (l->function_name
|
||||
&& strcmp (e->function_name, l->function_name) == 0)
|
||||
&& strcmp (e->function_name.get (),
|
||||
l->function_name.get ()) == 0)
|
||||
{
|
||||
l->enabled = e->enabled;
|
||||
l->disabled_by_cond = e->disabled_by_cond;
|
||||
|
||||
@@ -328,7 +328,7 @@ public:
|
||||
/* Construct a bp_location with type TYPE. */
|
||||
bp_location (breakpoint *owner, bp_loc_type type);
|
||||
|
||||
virtual ~bp_location ();
|
||||
virtual ~bp_location () = default;
|
||||
|
||||
/* Chain pointer to the next breakpoint location for
|
||||
the same parent breakpoint. */
|
||||
@@ -467,7 +467,7 @@ public:
|
||||
with it. */
|
||||
bound_probe probe {};
|
||||
|
||||
char *function_name = NULL;
|
||||
gdb::unique_xmalloc_ptr<char> function_name;
|
||||
|
||||
/* Details of the placed breakpoint, when inserted. */
|
||||
bp_target_info target_info {};
|
||||
|
||||
Reference in New Issue
Block a user