summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--gdb/ChangeLog4
-rw-r--r--gdb/stack.c7
2 files changed, 6 insertions, 5 deletions
diff --git a/gdb/ChangeLog b/gdb/ChangeLog
index a05e6358162..2ccf4e68326 100644
--- a/gdb/ChangeLog
+++ b/gdb/ChangeLog
@@ -1,5 +1,9 @@
2017-09-09 Tom Tromey <tom@tromey.com>
+ * stack.c (func_command): Use gdb::def_vector.
+
+2017-09-09 Tom Tromey <tom@tromey.com>
+
* mi/mi-cmd-var.c (mi_cmd_var_list_children): Use gdb::optional,
ui_out_emit_list, ui_out_emit_tuple.
(mi_cmd_var_update): Likewise.
diff --git a/gdb/stack.c b/gdb/stack.c
index a3bc9a3b2e2..24330099a99 100644
--- a/gdb/stack.c
+++ b/gdb/stack.c
@@ -52,6 +52,7 @@
#include "symfile.h"
#include "extension.h"
#include "observer.h"
+#include "common/def-vector.h"
/* The possible choices of "set print frame-arguments", and the value
of this setting. */
@@ -2521,7 +2522,6 @@ func_command (char *arg, int from_tty)
struct frame_info *frame;
int found = 0;
int level = 1;
- struct function_bounds *func_bounds = NULL;
if (arg == NULL)
return;
@@ -2529,8 +2529,7 @@ func_command (char *arg, int from_tty)
frame = get_current_frame ();
std::vector<symtab_and_line> sals
= decode_line_with_current_source (arg, DECODE_LINE_FUNFIRSTLINE);
- func_bounds = XNEWVEC (struct function_bounds, sals.size ());
- struct cleanup *cleanups = make_cleanup (xfree, func_bounds);
+ gdb::def_vector<function_bounds> func_bounds (sals.size ());
for (size_t i = 0; (i < sals.size () && !found); i++)
{
if (sals[i].pspace != current_program_space)
@@ -2557,8 +2556,6 @@ func_command (char *arg, int from_tty)
}
while (!found && level == 0);
- do_cleanups (cleanups);
-
if (!found)
printf_filtered (_("'%s' not within current stack frame.\n"), arg);
else if (frame != get_selected_frame (NULL))