Avoid extra work in global_symbol_searcher::expand_symtabs

I noticed that global_symbol_searcher::expand_symtabs always passes a
file matcher to expand_symtabs_matching.  However, if 'filenames' is
empty, then this always returns true.  It's slightly more efficient to
pass a null file matcher in this case, because that lets the "quick"
symbol implementations skip any filename checks.

Regression tested on x86-64 Fedora 34.
This commit is contained in:
Tom Tromey 2021-12-06 12:20:28 -07:00
parent 4281b0c8fc
commit c5a9fcdfee

View file

@ -4678,11 +4678,16 @@ global_symbol_searcher::expand_symtabs
enum search_domain kind = m_kind;
bool found_msymbol = false;
auto do_file_match = [&] (const char *filename, bool basenames)
{
return file_matches (filename, filenames, basenames);
};
gdb::function_view<expand_symtabs_file_matcher_ftype> file_matcher = nullptr;
if (!filenames.empty ())
file_matcher = do_file_match;
objfile->expand_symtabs_matching
([&] (const char *filename, bool basenames)
{
return file_matches (filename, filenames, basenames);
},
(file_matcher,
&lookup_name_info::match_any (),
[&] (const char *symname)
{