aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--gdb/ChangeLog5
-rw-r--r--gdb/elfread.c10
2 files changed, 10 insertions, 5 deletions
diff --git a/gdb/ChangeLog b/gdb/ChangeLog
index d4d980f..57f3aa0 100644
--- a/gdb/ChangeLog
+++ b/gdb/ChangeLog
@@ -1,5 +1,10 @@
2011-12-21 Tom Tromey <tromey@redhat.com>
+ * elfread.c (elf_symtab_read): Put the filename in the filename
+ bcache.
+
+2011-12-21 Tom Tromey <tromey@redhat.com>
+
* symtab.h (struct minimal_symbol) <filename>: Now const.
2011-12-21 Ulrich Weigand <ulrich.weigand@linaro.org>
diff --git a/gdb/elfread.c b/gdb/elfread.c
index fd65ecf..4ceb31b 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;