Fix crash regression on systems featuring .gdb_index.
	* objfiles.c (free_objfile): Move the
	forget_cached_source_info_for_objfile call earlier.  Comment it.
	Extend the comment for objfile_free_data.
This commit is contained in:
Jan Kratochvil 2011-04-06 00:08:12 +00:00
parent 9182c5bc25
commit 9f743ef6ff
2 changed files with 13 additions and 3 deletions

View File

@ -1,3 +1,10 @@
2011-04-06 Jan Kratochvil <jan.kratochvil@redhat.com>
Fix crash regression on systems featuring .gdb_index.
* objfiles.c (free_objfile): Move the
forget_cached_source_info_for_objfile call earlier. Comment it.
Extend the comment for objfile_free_data.
2011-04-06 Jan Kratochvil <jan.kratochvil@redhat.com> 2011-04-06 Jan Kratochvil <jan.kratochvil@redhat.com>
Fix regression of displaying the debug format. Fix regression of displaying the debug format.

View File

@ -583,6 +583,10 @@ free_objfile (struct objfile *objfile)
lists. */ lists. */
preserve_values (objfile); preserve_values (objfile);
/* It still may reference data modules have associated with the objfile and
the symbol file data. */
forget_cached_source_info_for_objfile (objfile);
/* First do any symbol file specific actions required when we are /* First do any symbol file specific actions required when we are
finished with a particular symbol file. Note that if the objfile finished with a particular symbol file. Note that if the objfile
is using reusable symbol information (via mmalloc) then each of is using reusable symbol information (via mmalloc) then each of
@ -595,7 +599,8 @@ free_objfile (struct objfile *objfile)
(*objfile->sf->sym_finish) (objfile); (*objfile->sf->sym_finish) (objfile);
} }
/* Discard any data modules have associated with the objfile. */ /* Discard any data modules have associated with the objfile. The function
still may reference objfile->obfd. */
objfile_free_data (objfile); objfile_free_data (objfile);
gdb_bfd_unref (objfile->obfd); gdb_bfd_unref (objfile->obfd);
@ -637,8 +642,6 @@ free_objfile (struct objfile *objfile)
clear_current_source_symtab_and_line (); clear_current_source_symtab_and_line ();
} }
forget_cached_source_info_for_objfile (objfile);
/* The last thing we do is free the objfile struct itself. */ /* The last thing we do is free the objfile struct itself. */
xfree (objfile->name); xfree (objfile->name);