summaryrefslogtreecommitdiff
path: root/gdb/psymtab.c
diff options
context:
space:
mode:
authorTom Tromey <tom@tromey.com>2021-04-17 09:35:04 -0600
committerTom Tromey <tom@tromey.com>2021-04-17 09:35:06 -0600
commit536a40f3a8d2c18aae18a9137b838ff2accdfc08 (patch)
treed498eab42e09269d72816d31091eb55e083cc1b1 /gdb/psymtab.c
parent84d865e39c3739097d7a3481b9c9b6b6fecb2b06 (diff)
downloadbinutils-gdb-536a40f3a8d2c18aae18a9137b838ff2accdfc08.tar.gz
Remove quick_symbol_functions::map_symtabs_matching_filename
This replaces quick_symbol_functions::map_symtabs_matching_filename with a call to expand_symtabs_matching. As with the previous patch, rather than update all callers, the implementation is consolidated in objfile::map_symtabs_matching_filename. gdb/ChangeLog 2021-04-17 Tom Tromey <tom@tromey.com> * symfile-debug.c (objfile::map_symtabs_matching_filename): Rewrite. * quick-symbol.h (struct quick_symbol_functions) <map_symtabs_matching_filename>: Remove. * psymtab.c (partial_map_expand_apply) (psymbol_functions::map_symtabs_matching_filename): Remove. * psympriv.h (struct psymbol_functions) <map_symtabs_matching_filename>: Remove. * objfiles.h (struct objfile) <map_symtabs_matching_filename>: Update comment. * dwarf2/read.c (struct dwarf2_base_index_functions) <map_symtabs_matching_filename>: Remove. (dw2_map_expand_apply) (dwarf2_base_index_functions::map_symtabs_matching_filename): Remove.
Diffstat (limited to 'gdb/psymtab.c')
-rw-r--r--gdb/psymtab.c90
1 files changed, 0 insertions, 90 deletions
diff --git a/gdb/psymtab.c b/gdb/psymtab.c
index b9b7c7d06b2..be523a7ded0 100644
--- a/gdb/psymtab.c
+++ b/gdb/psymtab.c
@@ -87,96 +87,6 @@ psymbol_functions::require_partial_symbols (struct objfile *objfile)
return m_partial_symtabs->range ();
}
-/* Helper function for psym_map_symtabs_matching_filename that
- expands the symtabs and calls the iterator. */
-
-static bool
-partial_map_expand_apply (struct objfile *objfile,
- const char *name,
- const char *real_path,
- struct partial_symtab *pst,
- gdb::function_view<bool (symtab *)> callback)
-{
- struct compunit_symtab *last_made = objfile->compunit_symtabs;
-
- /* Shared psymtabs should never be seen here. Instead they should
- be handled properly by the caller. */
- gdb_assert (pst->user == NULL);
-
- /* Don't visit already-expanded psymtabs. */
- if (pst->readin_p (objfile))
- return 0;
-
- /* This may expand more than one symtab, and we want to iterate over
- all of them. */
- psymtab_to_symtab (objfile, pst);
-
- return iterate_over_some_symtabs (name, real_path, objfile->compunit_symtabs,
- last_made, callback);
-}
-
-/* Psymtab version of map_symtabs_matching_filename. See its definition in
- the definition of quick_symbol_functions in symfile.h. */
-
-bool
-psymbol_functions::map_symtabs_matching_filename
- (struct objfile *objfile,
- const char *name,
- const char *real_path,
- gdb::function_view<bool (symtab *)> callback)
-{
- const char *name_basename = lbasename (name);
-
- for (partial_symtab *pst : require_partial_symbols (objfile))
- {
- /* Anonymous psymtabs don't have a file name. */
- if (pst->anonymous)
- continue;
-
- if (compare_filenames_for_search (pst->filename, name))
- {
- while (pst->user)
- pst = pst->user;
-
- if (partial_map_expand_apply (objfile, name, real_path,
- pst, callback))
- return true;
- continue;
- }
-
- /* Before we invoke realpath, which can get expensive when many
- files are involved, do a quick comparison of the basenames. */
- if (! basenames_may_differ
- && FILENAME_CMP (name_basename, lbasename (pst->filename)) != 0)
- continue;
-
- if (compare_filenames_for_search (psymtab_to_fullname (pst), name))
- {
- if (partial_map_expand_apply (objfile, name, real_path,
- pst, callback))
- return true;
- continue;
- }
-
- /* If the user gave us an absolute path, try to find the file in
- this symtab and use its absolute path. */
- if (real_path != NULL)
- {
- gdb_assert (IS_ABSOLUTE_PATH (real_path));
- gdb_assert (IS_ABSOLUTE_PATH (name));
- if (filename_cmp (psymtab_to_fullname (pst), real_path) == 0)
- {
- if (partial_map_expand_apply (objfile, name, real_path,
- pst, callback))
- return true;
- continue;
- }
- }
- }
-
- return false;
-}
-
/* Find which partial symtab contains PC and SECTION starting at psymtab PST.
We may find a different psymtab than PST. See FIND_PC_SECT_PSYMTAB. */