diff options
-rw-r--r-- | gdb/ChangeLog | 4 | ||||
-rw-r--r-- | gdb/stack.c | 7 |
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)) |