* symtab.c (symbol_init_cplus_specific, symbol_set_demangled_name):

Take an obstack, not an objfile.
	(symbol_set_names): Update.
	* symtab.h (symbol_set_demangled_name): Update.
This commit is contained in:
Tom Tromey 2013-04-08 19:53:18 +00:00
parent e623cf5da2
commit ccde22c0a4
3 changed files with 16 additions and 8 deletions

View file

@ -1,3 +1,10 @@
2013-04-08 Tom Tromey <tromey@redhat.com>
* symtab.c (symbol_init_cplus_specific, symbol_set_demangled_name):
Take an obstack, not an objfile.
(symbol_set_names): Update.
* symtab.h (symbol_set_demangled_name): Update.
2013-04-08 Tom Tromey <tromey@redhat.com> 2013-04-08 Tom Tromey <tromey@redhat.com>
* coffread.c (process_coff_symbol, coff_read_enum_type): Call * coffread.c (process_coff_symbol, coff_read_enum_type): Call

View file

@ -420,15 +420,15 @@ gdb_mangle_name (struct type *type, int method_id, int signature_id)
static void static void
symbol_init_cplus_specific (struct general_symbol_info *gsymbol, symbol_init_cplus_specific (struct general_symbol_info *gsymbol,
struct objfile *objfile) struct obstack *obstack)
{ {
/* A language_specific structure should not have been previously /* A language_specific structure should not have been previously
initialized. */ initialized. */
gdb_assert (gsymbol->language_specific.cplus_specific == NULL); gdb_assert (gsymbol->language_specific.cplus_specific == NULL);
gdb_assert (objfile != NULL); gdb_assert (obstack != NULL);
gsymbol->language_specific.cplus_specific = gsymbol->language_specific.cplus_specific =
OBSTACK_ZALLOC (&objfile->objfile_obstack, struct cplus_specific); OBSTACK_ZALLOC (obstack, struct cplus_specific);
} }
/* Set the demangled name of GSYMBOL to NAME. NAME must be already /* Set the demangled name of GSYMBOL to NAME. NAME must be already
@ -439,12 +439,12 @@ symbol_init_cplus_specific (struct general_symbol_info *gsymbol,
void void
symbol_set_demangled_name (struct general_symbol_info *gsymbol, symbol_set_demangled_name (struct general_symbol_info *gsymbol,
const char *name, const char *name,
struct objfile *objfile) struct obstack *obstack)
{ {
if (gsymbol->language == language_cplus) if (gsymbol->language == language_cplus)
{ {
if (gsymbol->language_specific.cplus_specific == NULL) if (gsymbol->language_specific.cplus_specific == NULL)
symbol_init_cplus_specific (gsymbol, objfile); symbol_init_cplus_specific (gsymbol, obstack);
gsymbol->language_specific.cplus_specific->demangled_name = name; gsymbol->language_specific.cplus_specific->demangled_name = name;
} }
@ -791,9 +791,10 @@ symbol_set_names (struct general_symbol_info *gsymbol,
gsymbol->name = (*slot)->mangled + lookup_len - len; gsymbol->name = (*slot)->mangled + lookup_len - len;
if ((*slot)->demangled[0] != '\0') if ((*slot)->demangled[0] != '\0')
symbol_set_demangled_name (gsymbol, (*slot)->demangled, objfile); symbol_set_demangled_name (gsymbol, (*slot)->demangled,
&objfile->objfile_obstack);
else else
symbol_set_demangled_name (gsymbol, NULL, objfile); symbol_set_demangled_name (gsymbol, NULL, &objfile->objfile_obstack);
} }
/* Return the source code name of a symbol. In languages where /* Return the source code name of a symbol. In languages where

View file

@ -169,7 +169,7 @@ struct general_symbol_info
extern void symbol_set_demangled_name (struct general_symbol_info *, extern void symbol_set_demangled_name (struct general_symbol_info *,
const char *, const char *,
struct objfile *); struct obstack *);
extern const char *symbol_get_demangled_name extern const char *symbol_get_demangled_name
(const struct general_symbol_info *); (const struct general_symbol_info *);