diff options
-rw-r--r-- | gdb/ChangeLog | 10 | ||||
-rw-r--r-- | gdb/bcache.c | 15 | ||||
-rw-r--r-- | gdb/bcache.h | 9 | ||||
-rw-r--r-- | gdb/symfile.c | 11 |
4 files changed, 37 insertions, 8 deletions
diff --git a/gdb/ChangeLog b/gdb/ChangeLog index 3c59bc5..984dbaf 100644 --- a/gdb/ChangeLog +++ b/gdb/ChangeLog @@ -1,3 +1,13 @@ +2003-11-15 Andrew Cagney <cagney@redhat.com> + + * bcache.h (deprecated_bcache): Declare. + (bcache): Make returned buffer constant. + * bcache.c (deprecated_bcache): New function. + (bcache_data): New function. + (bcache): Call bcache data. + * symfile.c (add_psymbol_to_list): Use deprecated_bcache. + (add_psymbol_with_dem_name_to_list): Ditto. + 2003-11-15 Mark Kettenis <kettenis@gnu.org> * glibc-tdep.h (struct gdbarch): Declare opaque. diff --git a/gdb/bcache.c b/gdb/bcache.c index ec8b777..b1d9de8 100644 --- a/gdb/bcache.c +++ b/gdb/bcache.c @@ -195,8 +195,8 @@ expand_hash_table (struct bcache *bcache) /* Find a copy of the LENGTH bytes at ADDR in BCACHE. If BCACHE has never seen those bytes before, add a copy of them to BCACHE. In either case, return a pointer to BCACHE's copy of that string. */ -void * -bcache (const void *addr, int length, struct bcache *bcache) +static void * +bcache_data (const void *addr, int length, struct bcache *bcache) { unsigned long full_hash; unsigned short half_hash; @@ -247,6 +247,17 @@ bcache (const void *addr, int length, struct bcache *bcache) } } +void * +deprecated_bcache (const void *addr, int length, struct bcache *bcache) +{ + return bcache_data (addr, length, bcache); +} + +const void * +bcache (const void *addr, int length, struct bcache *bcache) +{ + return bcache_data (addr, length, bcache); +} /* Allocating and freeing bcaches. */ diff --git a/gdb/bcache.h b/gdb/bcache.h index 6c3a63d..bf69853 100644 --- a/gdb/bcache.h +++ b/gdb/bcache.h @@ -143,8 +143,13 @@ struct bcache; /* Find a copy of the LENGTH bytes at ADDR in BCACHE. If BCACHE has never seen those bytes before, add a copy of them to BCACHE. In - either case, return a pointer to BCACHE's copy of that string. */ -extern void *bcache (const void *addr, int length, struct bcache *bcache); + either case, return a pointer to BCACHE's copy of that string. + Since the cached value is ment to be read-only, return a const + buffer. */ +extern void *deprecated_bcache (const void *addr, int length, + struct bcache *bcache); +extern const void *bcache (const void *addr, int length, + struct bcache *bcache); /* Free all the storage used by BCACHE. */ extern void bcache_xfree (struct bcache *bcache); diff --git a/gdb/symfile.c b/gdb/symfile.c index 6e51f98..d85ec19 100644 --- a/gdb/symfile.c +++ b/gdb/symfile.c @@ -2680,7 +2680,8 @@ add_psymbol_to_list (char *name, int namelength, domain_enum domain, SYMBOL_SET_NAMES (&psymbol, buf, namelength, objfile); /* Stash the partial symbol away in the cache */ - psym = bcache (&psymbol, sizeof (struct partial_symbol), objfile->psymbol_cache); + psym = deprecated_bcache (&psymbol, sizeof (struct partial_symbol), + objfile->psymbol_cache); /* Save pointer to partial symbol in psymtab, growing symtab if needed. */ if (list->next >= list->list + list->size) @@ -2717,7 +2718,8 @@ add_psymbol_with_dem_name_to_list (char *name, int namelength, char *dem_name, memcpy (buf, name, namelength); buf[namelength] = '\0'; - DEPRECATED_SYMBOL_NAME (&psymbol) = bcache (buf, namelength + 1, objfile->psymbol_cache); + DEPRECATED_SYMBOL_NAME (&psymbol) = deprecated_bcache (buf, namelength + 1, + objfile->psymbol_cache); buf = alloca (dem_namelength + 1); memcpy (buf, dem_name, dem_namelength); @@ -2728,7 +2730,7 @@ add_psymbol_with_dem_name_to_list (char *name, int namelength, char *dem_name, case language_c: case language_cplus: SYMBOL_CPLUS_DEMANGLED_NAME (&psymbol) = - bcache (buf, dem_namelength + 1, objfile->psymbol_cache); + deprecated_bcache (buf, dem_namelength + 1, objfile->psymbol_cache); break; /* FIXME What should be done for the default case? Ignoring for now. */ } @@ -2749,7 +2751,8 @@ add_psymbol_with_dem_name_to_list (char *name, int namelength, char *dem_name, SYMBOL_INIT_LANGUAGE_SPECIFIC (&psymbol, language); /* Stash the partial symbol away in the cache */ - psym = bcache (&psymbol, sizeof (struct partial_symbol), objfile->psymbol_cache); + psym = deprecated_bcache (&psymbol, sizeof (struct partial_symbol), + objfile->psymbol_cache); /* Save pointer to partial symbol in psymtab, growing symtab if needed. */ if (list->next >= list->list + list->size) |