diff --git a/gdb/ChangeLog b/gdb/ChangeLog index d4d980f1e50..57f3aa02efe 100644 --- a/gdb/ChangeLog +++ b/gdb/ChangeLog @@ -1,3 +1,8 @@ +2011-12-21 Tom Tromey + + * elfread.c (elf_symtab_read): Put the filename in the filename + bcache. + 2011-12-21 Tom Tromey * symtab.h (struct minimal_symbol) : Now const. diff --git a/gdb/elfread.c b/gdb/elfread.c index fd65ecf9159..4ceb31bd564 100644 --- a/gdb/elfread.c +++ b/gdb/elfread.c @@ -43,6 +43,7 @@ #include "infcall.h" #include "gdbthread.h" #include "regcache.h" +#include "bcache.h" extern void _initialize_elfread (void); @@ -240,8 +241,8 @@ elf_symtab_read (struct objfile *objfile, int type, seen any section info for it yet. */ asymbol *filesym = 0; /* Name of filesym. This is either a constant string or is saved on - the objfile's obstack. */ - char *filesymname = ""; + the objfile's filename cache. */ + const char *filesymname = ""; struct dbx_symfile_info *dbx = objfile->deprecated_sym_stab_info; int stripped = (bfd_get_symcount (objfile->obfd) == 0); @@ -346,9 +347,8 @@ elf_symtab_read (struct objfile *objfile, int type, sectinfo = NULL; } filesym = sym; - filesymname = - obsavestring ((char *) filesym->name, strlen (filesym->name), - &objfile->objfile_obstack); + filesymname = bcache (filesym->name, strlen (filesym->name) + 1, + objfile->filename_cache); } else if (sym->flags & BSF_SECTION_SYM) continue;