diff options
-rw-r--r-- | gdb/ChangeLog | 7 | ||||
-rw-r--r-- | gdb/symtab.c | 15 | ||||
-rw-r--r-- | gdb/symtab.h | 2 |
3 files changed, 16 insertions, 8 deletions
diff --git a/gdb/ChangeLog b/gdb/ChangeLog index 174abc5..17772f9 100644 --- a/gdb/ChangeLog +++ b/gdb/ChangeLog @@ -1,5 +1,12 @@ 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> + * coffread.c (process_coff_symbol, coff_read_enum_type): Call allocate_symbol. * dwarf2read.c (fixup_go_packaging): Call allocate_symbol. diff --git a/gdb/symtab.c b/gdb/symtab.c index c50e895..d56faa6 100644 --- a/gdb/symtab.c +++ b/gdb/symtab.c @@ -420,15 +420,15 @@ gdb_mangle_name (struct type *type, int method_id, int signature_id) static void symbol_init_cplus_specific (struct general_symbol_info *gsymbol, - struct objfile *objfile) + struct obstack *obstack) { /* A language_specific structure should not have been previously initialized. */ gdb_assert (gsymbol->language_specific.cplus_specific == NULL); - gdb_assert (objfile != NULL); + gdb_assert (obstack != NULL); 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 @@ -439,12 +439,12 @@ symbol_init_cplus_specific (struct general_symbol_info *gsymbol, void symbol_set_demangled_name (struct general_symbol_info *gsymbol, const char *name, - struct objfile *objfile) + struct obstack *obstack) { if (gsymbol->language == language_cplus) { 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; } @@ -791,9 +791,10 @@ symbol_set_names (struct general_symbol_info *gsymbol, gsymbol->name = (*slot)->mangled + lookup_len - len; if ((*slot)->demangled[0] != '\0') - symbol_set_demangled_name (gsymbol, (*slot)->demangled, objfile); + symbol_set_demangled_name (gsymbol, (*slot)->demangled, + &objfile->objfile_obstack); 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 diff --git a/gdb/symtab.h b/gdb/symtab.h index b86c118..7c27bf9 100644 --- a/gdb/symtab.h +++ b/gdb/symtab.h @@ -169,7 +169,7 @@ struct general_symbol_info extern void symbol_set_demangled_name (struct general_symbol_info *, const char *, - struct objfile *); + struct obstack *); extern const char *symbol_get_demangled_name (const struct general_symbol_info *); |