forked from Imagelibrary/binutils-gdb
Add a constructor and destructor to linespec_result
linespec_result is only ever allocated on the stack, so it's relatively easy to convert to having a constructor and a destructor. This patch makes this change. This removes some cleanups. gdb/ChangeLog 2017-04-12 Tom Tromey <tom@tromey.com> * linespec.h (struct linespec_result): Add constructor and destructor. (init_linespec_result, destroy_linespec_result) (make_cleanup_destroy_linespec_result): Don't declare. * linespec.c (init_linespec_result): Remove. (linespec_result::~linespec_result): Rename from destroy_linespec_result. Update. (cleanup_linespec_result, make_cleanup_destroy_linespec_result): Remove. * breakpoint.c (create_breakpoint, break_range_command) (decode_location_default): Update. * ax-gdb.c (agent_command_1): Update.
This commit is contained in:
@@ -3887,45 +3887,18 @@ symbol_to_sal (struct symtab_and_line *result,
|
||||
return 0;
|
||||
}
|
||||
|
||||
/* See the comment in linespec.h. */
|
||||
|
||||
void
|
||||
init_linespec_result (struct linespec_result *lr)
|
||||
{
|
||||
memset (lr, 0, sizeof (*lr));
|
||||
}
|
||||
|
||||
/* See the comment in linespec.h. */
|
||||
|
||||
void
|
||||
destroy_linespec_result (struct linespec_result *ls)
|
||||
linespec_result::~linespec_result ()
|
||||
{
|
||||
int i;
|
||||
struct linespec_sals *lsal;
|
||||
|
||||
delete_event_location (ls->location);
|
||||
for (i = 0; VEC_iterate (linespec_sals, ls->sals, i, lsal); ++i)
|
||||
delete_event_location (location);
|
||||
for (i = 0; VEC_iterate (linespec_sals, sals, i, lsal); ++i)
|
||||
{
|
||||
xfree (lsal->canonical);
|
||||
xfree (lsal->sals.sals);
|
||||
}
|
||||
VEC_free (linespec_sals, ls->sals);
|
||||
}
|
||||
|
||||
/* Cleanup function for a linespec_result. */
|
||||
|
||||
static void
|
||||
cleanup_linespec_result (void *a)
|
||||
{
|
||||
destroy_linespec_result ((struct linespec_result *) a);
|
||||
}
|
||||
|
||||
/* See the comment in linespec.h. */
|
||||
|
||||
struct cleanup *
|
||||
make_cleanup_destroy_linespec_result (struct linespec_result *ls)
|
||||
{
|
||||
return make_cleanup (cleanup_linespec_result, ls);
|
||||
VEC_free (linespec_sals, sals);
|
||||
}
|
||||
|
||||
/* Return the quote characters permitted by the linespec parser. */
|
||||
|
||||
Reference in New Issue
Block a user