diff options
author | Tom Tromey <tom@tromey.com> | 2017-04-10 15:47:21 -0600 |
---|---|---|
committer | Tom Tromey <tom@tromey.com> | 2017-04-12 11:16:19 -0600 |
commit | 16e802b9c085ce354b1ab9e2fd25d00bf7626fa8 (patch) | |
tree | 7745d7708fd31fe748a6807242a3a6e58201f892 /gdb/linespec.c | |
parent | d28cd78ad820e3a40ac5064b6a30f3a12ce70bf0 (diff) | |
download | binutils-gdb-16e802b9c085ce354b1ab9e2fd25d00bf7626fa8.tar.gz |
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.
Diffstat (limited to 'gdb/linespec.c')
-rw-r--r-- | gdb/linespec.c | 35 |
1 files changed, 4 insertions, 31 deletions
diff --git a/gdb/linespec.c b/gdb/linespec.c index bccabafd1be..51fa1284fec 100644 --- a/gdb/linespec.c +++ b/gdb/linespec.c @@ -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. */ |