Merge forget_cached_source_info_for_objfile into objfile method
authorTom Tromey <tom@tromey.com>
Tue, 21 Feb 2023 22:03:38 +0000 (15:03 -0700)
committerTom Tromey <tom@tromey.com>
Tue, 7 Mar 2023 21:46:58 +0000 (14:46 -0700)
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.

gdb/objfiles.c
gdb/source.c
gdb/source.h
gdb/symfile-debug.c

index ed29131d528fb57a153bfd9a4934acc9009a8c10..8e7be8e2e25613ea38d4294be57e33ccc900a82d 100644 (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);
index ca0e8d51fbd78428cee40a1c2ee5db64a412b350..faf0be6fe5ad13e70803fa64cacbff7b338d0e8e 100644 (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;
index dd6f58c579c58b3bb912152540727364f5b4aa52..d3e612ceaa1cee3eff1389b55f126b1ac4c26214 100644 (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.  */
index efc6bcdf2bdfb736b32322a25287c210a89f163b..9db5c47a8ce6de2c827d929380393b41c17a79ca 100644 (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);
 }