Change search_symbols to return std::vector
authorTom Tromey <tom@tromey.com>
Sun, 8 Oct 2017 18:11:18 +0000 (12:11 -0600)
committerTom Tromey <tom@tromey.com>
Mon, 9 Oct 2017 04:53:53 +0000 (22:53 -0600)
commitb9c04fb2681dd5706d2cafa5dcc6bdcd99016cf4
tree504043c3c682060b43004685f24a842f79ee3c26
parentb55ec8b676ed05d93ee49d6c79ae0403616c4fb0
Change search_symbols to return std::vector

This changes search_symbols to return a std::vector, replacing the
previous linked list approach.  This allows the removal of some
cleanups, as well as the use of std::sort and std::unique, saving some
code and extra allocations in sort_search_symbols_remove_dups.

Regression tested by the buildbot.

gdb/ChangeLog
2017-10-08  Tom Tromey  <tom@tromey.com>

* symtab.c (free_search_symbols, do_free_search_symbols_cleanup)
(make_cleanup_free_search_symbols): Remove.
(search_symbols): Return std::vector.
(symbol_search::compare_search_syms): Now member of
symbol_search.  Change arguments.
(sort_search_symbols_remove_dups): Change arguments.  Rewrite.
(symtab_symbol_info, rbreak_command): Update.
* symtab.h (struct symbol_search) <next>: Remove.
Add constructors.
(symbol_search::operator<): New function.
(symbol_search::operator==): New function.
(search_symbols): Remove std::vector.
(free_search_symbols, make_cleanup_free_search_symbols): Remove.
(symbol_search::compare_search_syms): Declare.
gdb/ChangeLog
gdb/symtab.c
gdb/symtab.h