* coffread.c (coff_symfile_init): Use set_objfile_data.

(coff_symfile_read): Use DBX_SYMFILE_INFO.
	* dbxread.c (dbx_objfile_data_key): New global.
	(dbx_symfile_init): Use set_objfile_data.
	(dbx_symfile_finish): Don't free deprecated_sym_stab_info.
	(dbx_free_symfile_info): New function.
	(coffstab_build_psymtabs, elfstab_build_psymtabs): Use
	DBX_SYMFILE_INFO.
	(stabsect_build_psymtabs): Use set_objfile_data.
	(_initialize_dbxreadb): Initialize dbx_objfile_data_key.
	* elfread.c (elf_symtab_read): Use DBX_SYMFILE_INFO,
	set_objfile_data.
	(free_elfinfo): Use DBX_SYMFILE_INFO.
	(elf_symfile_finish): Don't free deprecated_sym_stab_info.
	(elfstab_offset_sections): Use DBX_SYMFILE_INFO.
	* gdb-stabs.h (dbx_objfile_data_key): Declare.
	(DBX_SYMFILE_INFO): Rewrite to use objfile_data.
	* objfiles.h (struct objfile) <deprecated_sym_stab_info>: Remove.
	* somread.c (som_symfile_finish): Don't free
	deprecated_sym_stab_info.
This commit is contained in:
Tom Tromey 2012-12-12 15:57:01 +00:00
parent 6f112b1867
commit d2f4b8feb9
7 changed files with 84 additions and 68 deletions

View file

@ -27,6 +27,10 @@
#if !defined (GDBSTABS_H)
#define GDBSTABS_H
/* The tag used to find the DBX info attached to an objfile. This is
global because it is referenced by several modules. */
extern const struct objfile_data *dbx_objfile_data_key;
/* The stab_section_info chain remembers info from the ELF symbol table,
while psymtabs are being built for the other symbol tables in the
objfile. It is destroyed at the complation of psymtab-reading.
@ -42,8 +46,8 @@ struct stab_section_info
};
/* Information is passed among various dbxread routines for accessing
symbol files. A pointer to this structure is kept in the
deprecated_sym_stab_info field of the objfile struct. */
symbol files. A pointer to this structure is kept in the objfile,
using the dbx_objfile_data_key. */
struct dbx_symfile_info
{
@ -73,7 +77,8 @@ struct dbx_symfile_info
asection *stab_section;
};
#define DBX_SYMFILE_INFO(o) ((o)->deprecated_sym_stab_info)
#define DBX_SYMFILE_INFO(o) \
((struct dbx_symfile_info *) objfile_data ((o), dbx_objfile_data_key))
#define DBX_TEXT_ADDR(o) (DBX_SYMFILE_INFO(o)->text_addr)
#define DBX_TEXT_SIZE(o) (DBX_SYMFILE_INFO(o)->text_size)
#define DBX_SYMCOUNT(o) (DBX_SYMFILE_INFO(o)->symcount)