diff options
author | Tom Tromey <tom@tromey.com> | 2017-05-04 16:35:09 -0600 |
---|---|---|
committer | Tom Tromey <tom@tromey.com> | 2017-09-29 21:12:17 -0600 |
commit | ab816a274505933da2f854014b54901c3c3db9d2 (patch) | |
tree | cdf2fded62e795be4d5be1114e46a2523c2595e2 /gdb/mi | |
parent | 52f9abe4c739f42cc5f80b2629276493ac6306f9 (diff) | |
download | gdb-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.c | 17 |
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. */ |