diff options
author | Fred Fish <fnf@specifix.com> | 2006-01-06 16:23:35 +0000 |
---|---|---|
committer | Fred Fish <fnf@specifix.com> | 2006-01-06 16:23:35 +0000 |
commit | cb5d864f33a47d6b803c9224189f2ac0c5599f93 (patch) | |
tree | 2e2b5691e73a49fdba5895e0474b328289ba2076 /gdb/objfiles.c | |
parent | 7983a4a1b33144aae1331045336da217dee4d47e (diff) | |
download | gdb-cb5d864f33a47d6b803c9224189f2ac0c5599f93.zip gdb-cb5d864f33a47d6b803c9224189f2ac0c5599f93.tar.gz gdb-cb5d864f33a47d6b803c9224189f2ac0c5599f93.tar.bz2 |
Reviewed and approved by Jim Blandy
2006-01-06 Fred Fish <fnf@specifix.com>
* objfiles.c (source.h): Include.
(free_objfile): Update comment about clear_symtab_users().
(free_objfile): Check all symtabs of objfile being freed and if
one of them is the current source symtab, call
clear_current_source_symtab_and_line().
Diffstat (limited to 'gdb/objfiles.c')
-rw-r--r-- | gdb/objfiles.c | 19 |
1 files changed, 17 insertions, 2 deletions
diff --git a/gdb/objfiles.c b/gdb/objfiles.c index 459709a..41aab64 100644 --- a/gdb/objfiles.c +++ b/gdb/objfiles.c @@ -45,6 +45,7 @@ #include "breakpoint.h" #include "block.h" #include "dictionary.h" +#include "source.h" /* Prototypes for local functions */ @@ -432,10 +433,24 @@ free_objfile (struct objfile *objfile) is unknown, but we play it safe for now and keep each action until it is shown to be no longer needed. */ - /* I *think* all our callers call clear_symtab_users. If so, no need - to call this here. */ + /* Not all our callers call clear_symtab_users (objfile_purge_solibs, + for example), so we need to call this here. */ clear_pc_function_cache (); + /* Check to see if the current_source_symtab belongs to this objfile, + and if so, call clear_current_source_symtab_and_line. */ + + { + struct symtab_and_line cursal = get_current_source_symtab_and_line (); + struct symtab *s; + + ALL_OBJFILE_SYMTABS (objfile, s) + { + if (s == cursal.symtab) + clear_current_source_symtab_and_line (); + } + } + /* The last thing we do is free the objfile struct itself. */ objfile_free_data (objfile); |