aboutsummaryrefslogtreecommitdiff
path: root/gdb
diff options
context:
space:
mode:
authorTom Tromey <tom@tromey.com>2021-03-26 13:28:03 -0600
committerTom Tromey <tom@tromey.com>2021-03-26 13:28:03 -0600
commite2cd5ca40c03271aa0bf324cac1f7a66ad3904d8 (patch)
treeba78d6ae6b8cd50c3fb4932cfd2b817cfccf15ca /gdb
parentcd43f63e00113cc10e068a10966a8c90e9b37ccc (diff)
downloadgdb-e2cd5ca40c03271aa0bf324cac1f7a66ad3904d8.zip
gdb-e2cd5ca40c03271aa0bf324cac1f7a66ad3904d8.tar.gz
gdb-e2cd5ca40c03271aa0bf324cac1f7a66ad3904d8.tar.bz2
Simplify psymbol_functions::expand_symtabs_matching
I noticed that psymbol_functions::expand_symtabs_matching calls make_ignore_params once per psymtab that is matched. This seems possibly expensive, so this patch hoists the call out of the loop. gdb/ChangeLog 2021-03-26 Tom Tromey <tom@tromey.com> * psymtab.c (psymbol_functions::expand_symtabs_matching): Only call make_ignore_params once.
Diffstat (limited to 'gdb')
-rw-r--r--gdb/ChangeLog5
-rw-r--r--gdb/psymtab.c6
2 files changed, 10 insertions, 1 deletions
diff --git a/gdb/ChangeLog b/gdb/ChangeLog
index 7955aa4..168cd5b 100644
--- a/gdb/ChangeLog
+++ b/gdb/ChangeLog
@@ -1,5 +1,10 @@
2021-03-26 Tom Tromey <tom@tromey.com>
+ * psymtab.c (psymbol_functions::expand_symtabs_matching): Only
+ call make_ignore_params once.
+
+2021-03-26 Tom Tromey <tom@tromey.com>
+
* psymtab.c (psymbol_functions::expand_symtabs_matching): Remove
"user" check.
diff --git a/gdb/psymtab.c b/gdb/psymtab.c
index 5a64166..1ea7376 100644
--- a/gdb/psymtab.c
+++ b/gdb/psymtab.c
@@ -1306,6 +1306,10 @@ psymbol_functions::expand_symtabs_matching
for (partial_symtab *ps : require_partial_symbols (objfile))
ps->searched_flag = PST_NOT_SEARCHED;
+ gdb::optional<lookup_name_info> psym_lookup_name;
+ if (lookup_name != nullptr)
+ psym_lookup_name = lookup_name->make_ignore_params ();
+
for (partial_symtab *ps : m_partial_symtabs->range ())
{
QUIT;
@@ -1335,7 +1339,7 @@ psymbol_functions::expand_symtabs_matching
if ((symbol_matcher == NULL && lookup_name == NULL)
|| recursively_search_psymtabs (ps, objfile, domain,
- lookup_name->make_ignore_params (),
+ *psym_lookup_name,
symbol_matcher))
{
struct compunit_symtab *symtab =