diff options
author | Tom Tromey <tom@tromey.com> | 2023-02-21 15:03:38 -0700 |
---|---|---|
committer | Tom Tromey <tom@tromey.com> | 2023-03-07 14:46:58 -0700 |
commit | 21f6be77b97e1d606881966fd4e407fde459a639 (patch) | |
tree | afb3ecd473c706fb12655b58b31028963d6fef83 | |
parent | 2a32d78f8aa6ddce2642067960f90173466dcc10 (diff) | |
download | binutils-21f6be77b97e1d606881966fd4e407fde459a639.zip binutils-21f6be77b97e1d606881966fd4e407fde459a639.tar.gz binutils-21f6be77b97e1d606881966fd4e407fde459a639.tar.bz2 |
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.
-rw-r--r-- | gdb/objfiles.c | 2 | ||||
-rw-r--r-- | gdb/source.c | 24 | ||||
-rw-r--r-- | gdb/source.h | 4 | ||||
-rw-r--r-- | gdb/symfile-debug.c | 12 |
4 files changed, 14 insertions, 28 deletions
diff --git a/gdb/objfiles.c b/gdb/objfiles.c index ed29131..8e7be8e 100644 --- a/gdb/objfiles.c +++ b/gdb/objfiles.c @@ -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); diff --git a/gdb/source.c b/gdb/source.c index ca0e8d5..faf0be6 100644 --- a/gdb/source.c +++ b/gdb/source.c @@ -421,33 +421,11 @@ 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; diff --git a/gdb/source.h b/gdb/source.h index dd6f58c..d3e612c 100644 --- a/gdb/source.h +++ b/gdb/source.h @@ -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. */ diff --git a/gdb/symfile-debug.c b/gdb/symfile-debug.c index efc6bcd..9db5c47 100644 --- a/gdb/symfile-debug.c +++ b/gdb/symfile-debug.c @@ -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); } |