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:06 -0600 |
commit | 536a40f3a8d2c18aae18a9137b838ff2accdfc08 (patch) | |
tree | d498eab42e09269d72816d31091eb55e083cc1b1 /gdb/psymtab.c | |
parent | 84d865e39c3739097d7a3481b9c9b6b6fecb2b06 (diff) | |
download | gdb-536a40f3a8d2c18aae18a9137b838ff2accdfc08.zip gdb-536a40f3a8d2c18aae18a9137b838ff2accdfc08.tar.gz gdb-536a40f3a8d2c18aae18a9137b838ff2accdfc08.tar.bz2 |
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.c | 90 |
1 files changed, 0 insertions, 90 deletions
diff --git a/gdb/psymtab.c b/gdb/psymtab.c index b9b7c7d..be523a7 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. */ |