From 8c2963fbcf62669f67a72fd06c48792f6c83c85f Mon Sep 17 00:00:00 2001 From: Tom Tromey Date: Wed, 4 Nov 2009 23:06:50 +0000 Subject: [PATCH] * symfile.c (add_psymbol_to_bcache): Don't copy name. Make 'psymbol' non-static. --- gdb/ChangeLog | 5 +++++ gdb/symfile.c | 18 ++++-------------- 2 files changed, 9 insertions(+), 14 deletions(-) diff --git a/gdb/ChangeLog b/gdb/ChangeLog index b84e553..ff7fa70 100644 --- a/gdb/ChangeLog +++ b/gdb/ChangeLog @@ -1,3 +1,8 @@ +2009-11-04 Tom Tromey + + * symfile.c (add_psymbol_to_bcache): Don't copy name. Make + 'psymbol' non-static. + 2009-11-03 Paul Pluzhnikov * linux-thread-db.c (disable_thread_event_reporting): Adjust. diff --git a/gdb/symfile.c b/gdb/symfile.c index 1e57c69..c55cb03 100644 --- a/gdb/symfile.c +++ b/gdb/symfile.c @@ -3106,19 +3106,9 @@ add_psymbol_to_bcache (char *name, int namelength, domain_enum domain, enum language language, struct objfile *objfile, int *added) { - char *buf = name; - /* psymbol is static so that there will be no uninitialized gaps in the - structure which might contain random data, causing cache misses in - bcache. */ - static struct partial_symbol psymbol; - - if (name[namelength] != '\0') - { - buf = alloca (namelength + 1); - /* Create local copy of the partial symbol */ - memcpy (buf, name, namelength); - buf[namelength] = '\0'; - } + struct partial_symbol psymbol; + + memset (&psymbol, 0, sizeof (struct partial_symbol)); /* val and coreaddr are mutually exclusive, one of them *will* be zero */ if (val != 0) { @@ -3133,7 +3123,7 @@ add_psymbol_to_bcache (char *name, int namelength, domain_enum domain, PSYMBOL_DOMAIN (&psymbol) = domain; PSYMBOL_CLASS (&psymbol) = class; - SYMBOL_SET_NAMES (&psymbol, buf, namelength, objfile); + SYMBOL_SET_NAMES (&psymbol, name, namelength, objfile); /* Stash the partial symbol away in the cache */ return bcache_full (&psymbol, sizeof (struct partial_symbol), -- 2.7.4