Merge forget_cached_source_info_for_objfile into objfile method

forget_cached_source_info_for_objfile does some objfile-specific work
and then calls objfile::forget_cached_source_info.  It seems better to
me to just have the method do all the work.
This commit is contained in:
Tom Tromey 2023-02-21 15:03:38 -07:00
parent 2a32d78f8a
commit 21f6be77b9
4 changed files with 14 additions and 28 deletions

View File

@ -534,7 +534,7 @@ objfile::~objfile ()
/* It still may reference data modules have associated with the objfile and
the symbol file data. */
forget_cached_source_info_for_objfile (this);
forget_cached_source_info ();
breakpoint_free_objfile (this);
btrace_free_objfile (this);

View File

@ -420,34 +420,12 @@ show_directories_command (struct ui_file *file, int from_tty,
/* See source.h. */
void
forget_cached_source_info_for_objfile (struct objfile *objfile)
{
for (compunit_symtab *cu : objfile->compunits ())
{
for (symtab *s : cu->filetabs ())
{
if (s->fullname != NULL)
{
xfree (s->fullname);
s->fullname = NULL;
}
}
}
objfile->forget_cached_source_info ();
}
/* See source.h. */
void
forget_cached_source_info (void)
{
for (struct program_space *pspace : program_spaces)
for (objfile *objfile : pspace->objfiles ())
{
forget_cached_source_info_for_objfile (objfile);
}
objfile->forget_cached_source_info ();
g_source_cache.clear ();
last_source_visited = NULL;

View File

@ -197,10 +197,6 @@ private:
extern void print_source_lines (struct symtab *s, source_lines_range r,
print_source_lines_flags flags);
/* Forget line positions and file names for the symtabs in a
particular objfile. */
extern void forget_cached_source_info_for_objfile (struct objfile *);
/* Forget what we learned about line positions in source files, and
which directories contain them; must check again now since files
may be found in a different directory now. */

View File

@ -155,6 +155,18 @@ objfile::forget_cached_source_info ()
gdb_printf (gdb_stdlog, "qf->forget_cached_source_info (%s)\n",
objfile_debug_name (this));
for (compunit_symtab *cu : compunits ())
{
for (symtab *s : cu->filetabs ())
{
if (s->fullname != NULL)
{
xfree (s->fullname);
s->fullname = NULL;
}
}
}
for (const auto &iter : qf_require_partial_symbols ())
iter->forget_cached_source_info (this);
}