diff options
author | Tom Tromey <tom@tromey.com> | 2021-04-17 09:35:04 -0600 |
---|---|---|
committer | Tom Tromey <tom@tromey.com> | 2021-04-17 09:35:05 -0600 |
commit | df35e6262da99acc80bb88d669975f0b52e33876 (patch) | |
tree | dbef71936b779e3fec07ed64db0a7570186da308 /gdb/symfile-debug.c | |
parent | e357e9904cad07ba6aaaa2d1aa06de2c52464486 (diff) | |
download | gdb-df35e6262da99acc80bb88d669975f0b52e33876.zip gdb-df35e6262da99acc80bb88d669975f0b52e33876.tar.gz gdb-df35e6262da99acc80bb88d669975f0b52e33876.tar.bz2 |
Let expand_symtabs_matching short-circuit
This changes expand_symtabs_exp_notify_ftype to return bool, and
updates all the uses. Now, if the notification function returns
false, the call is short-circuited and stops examining symtabs. This
is a step toward replacing map_symtabs_matching_filename with
expand_symtabs_matching.
gdb/ChangeLog
2021-04-17 Tom Tromey <tom@tromey.com>
* symtab.c (default_collect_symbol_completion_matches_break_on):
Update.
* symfile.h (expand_symtabs_matching): Return bool.
* symfile.c (expand_symtabs_matching): Return bool.
* symfile-debug.c (objfile::expand_symtabs_matching): Return
bool.
* quick-symbol.h (expand_symtabs_exp_notify_ftype): Return bool.
(struct quick_symbol_functions) <expand_symtabs_matching>: Return
bool.
* psymtab.c (psymbol_functions::expand_symtabs_matching): Return
bool.
* psympriv.h (struct psymbol_functions)
<expand_symtabs_matching>: Return bool.
* objfiles.h (struct objfile) <expand_symtabs_matching>: Return
bool.
* dwarf2/read.c (struct dwarf2_gdb_index)
<expand_symtabs_matching>: Return bool.
(struct dwarf2_debug_names_index) <expand_symtabs_matching>:
Return bool.
(dw2_expand_symtabs_matching_symbol): Return bool.
(dw2_expand_symtabs_matching_one, dw2_expand_marked_cus)
(dw2_expand_symtabs_matching)
(dwarf2_gdb_index::expand_symtabs_matching)
(dwarf2_debug_names_index::expand_symtabs_matching)
(dwarf2_debug_names_index::expand_symtabs_matching): Return bool.
Diffstat (limited to 'gdb/symfile-debug.c')
-rw-r--r-- | gdb/symfile-debug.c | 9 |
1 files changed, 6 insertions, 3 deletions
diff --git a/gdb/symfile-debug.c b/gdb/symfile-debug.c index d811809..eff2e3a 100644 --- a/gdb/symfile-debug.c +++ b/gdb/symfile-debug.c @@ -265,7 +265,7 @@ objfile::map_matching_symbols callback, ordered_compare); } -void +bool objfile::expand_symtabs_matching (gdb::function_view<expand_symtabs_file_matcher_ftype> file_matcher, const lookup_name_info *lookup_name, @@ -283,8 +283,11 @@ objfile::expand_symtabs_matching search_domain_name (kind)); for (const auto &iter : qf) - iter->expand_symtabs_matching (this, file_matcher, lookup_name, - symbol_matcher, expansion_notify, kind); + if (!iter->expand_symtabs_matching (this, file_matcher, lookup_name, + symbol_matcher, expansion_notify, + kind)) + return false; + return true; } struct compunit_symtab * |