aboutsummaryrefslogtreecommitdiff
path: root/gdb/mi
diff options
context:
space:
mode:
authorTom Tromey <tom@tromey.com>2017-05-04 16:35:09 -0600
committerTom Tromey <tom@tromey.com>2017-09-29 21:12:17 -0600
commitab816a274505933da2f854014b54901c3c3db9d2 (patch)
treecdf2fded62e795be4d5be1114e46a2523c2595e2 /gdb/mi
parent52f9abe4c739f42cc5f80b2629276493ac6306f9 (diff)
downloadgdb-ab816a274505933da2f854014b54901c3c3db9d2.zip
gdb-ab816a274505933da2f854014b54901c3c3db9d2.tar.gz
gdb-ab816a274505933da2f854014b54901c3c3db9d2.tar.bz2
Use a std::vector for ada_exceptions_list
Change ada_exceptions_list to return a std::vector and fix up the users. This allows removing a cleanup in MI. gdb/ChangeLog 2017-09-29 Tom Tromey <tom@tromey.com> * mi/mi-cmd-info.c (mi_cmd_info_ada_exceptions): Update. * ada-lang.h (struct ada_exc_info): Remove typedef. Declare operator< and operator==. (ada_exceptions_list): Return a std::vector. * ada-lang.c (ada_exc_info::operator<): Rename from compare_ada_exception_info. (ada_exc_info::operator==): New. (sort_remove_dups_ada_exceptions_list): Change type of "exceptions". (ada_add_standard_exceptions, ada_add_exceptions_from_frame) (ada_add_global_exceptions): Likewise. (ada_exceptions_list_1): Return a std::vector. (ada_exceptions_list): Likewise.
Diffstat (limited to 'gdb/mi')
-rw-r--r--gdb/mi/mi-cmd-info.c17
1 files changed, 5 insertions, 12 deletions
diff --git a/gdb/mi/mi-cmd-info.c b/gdb/mi/mi-cmd-info.c
index fa0d16e..032d38a 100644
--- a/gdb/mi/mi-cmd-info.c
+++ b/gdb/mi/mi-cmd-info.c
@@ -30,10 +30,6 @@ mi_cmd_info_ada_exceptions (const char *command, char **argv, int argc)
struct ui_out *uiout = current_uiout;
struct gdbarch *gdbarch = get_current_arch ();
char *regexp;
- struct cleanup *old_chain;
- VEC(ada_exc_info) *exceptions;
- int ix;
- struct ada_exc_info *info;
switch (argc)
{
@@ -48,24 +44,21 @@ mi_cmd_info_ada_exceptions (const char *command, char **argv, int argc)
break;
}
- exceptions = ada_exceptions_list (regexp);
- old_chain = make_cleanup (VEC_cleanup (ada_exc_info), &exceptions);
+ std::vector<ada_exc_info> exceptions = ada_exceptions_list (regexp);
ui_out_emit_table table_emitter (uiout, 2,
- VEC_length (ada_exc_info, exceptions),
+ exceptions.size (),
"ada-exceptions");
uiout->table_header (1, ui_left, "name", "Name");
uiout->table_header (1, ui_left, "address", "Address");
uiout->table_body ();
- for (ix = 0; VEC_iterate(ada_exc_info, exceptions, ix, info); ix++)
+ for (const ada_exc_info &info : exceptions)
{
ui_out_emit_tuple tuple_emitter (uiout, NULL);
- uiout->field_string ("name", info->name);
- uiout->field_core_addr ("address", gdbarch, info->addr);
+ uiout->field_string ("name", info.name);
+ uiout->field_core_addr ("address", gdbarch, info.addr);
}
-
- do_cleanups (old_chain);
}
/* Implement the "-info-gdb-mi-command" GDB/MI command. */