2003-04-14 David Carlton <carlton@math.stanford.edu>
* symtab.c (symbol_set_names): Rename 'name' arg to 'linkage_name', and 'tmpname' variable to 'linkage_name_copy'. * symtab.h: Change 'name' argument in declaration of symbol_set_names to 'linkage_name'. (SYMBOL_SET_NAMES): Change 'name' argument to 'linkage_name'.
This commit is contained in:
parent
e227b13c67
commit
980cae7a71
|
@ -1,3 +1,11 @@
|
||||||
|
2003-04-14 David Carlton <carlton@math.stanford.edu>
|
||||||
|
|
||||||
|
* symtab.c (symbol_set_names): Rename 'name' arg to
|
||||||
|
'linkage_name', and 'tmpname' variable to 'linkage_name_copy'.
|
||||||
|
* symtab.h: Change 'name' argument in declaration of
|
||||||
|
symbol_set_names to 'linkage_name'.
|
||||||
|
(SYMBOL_SET_NAMES): Change 'name' argument to 'linkage_name'.
|
||||||
|
|
||||||
2003-04-14 Andrew Cagney <cagney@redhat.com>
|
2003-04-14 Andrew Cagney <cagney@redhat.com>
|
||||||
|
|
||||||
* mips-tdep.c (mips_read_sp): Do not apply ADDR_BITS_REMOVE,
|
* mips-tdep.c (mips_read_sp): Do not apply ADDR_BITS_REMOVE,
|
||||||
|
|
51
gdb/symtab.c
51
gdb/symtab.c
|
@ -484,40 +484,49 @@ symbol_find_demangled_name (struct general_symbol_info *gsymbol,
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Set both the mangled and demangled (if any) names for GSYMBOL based on
|
/* Set both the mangled and demangled (if any) names for GSYMBOL based
|
||||||
NAME and LEN. The hash table corresponding to OBJFILE is used, and the
|
on LINKAGE_NAME and LEN. The hash table corresponding to OBJFILE
|
||||||
memory comes from that objfile's symbol_obstack. NAME is copied, so the
|
is used, and the memory comes from that objfile's symbol_obstack.
|
||||||
pointer can be discarded after calling this function. */
|
LINKAGE_NAME is copied, so the pointer can be discarded after
|
||||||
|
calling this function. */
|
||||||
|
|
||||||
void
|
void
|
||||||
symbol_set_names (struct general_symbol_info *gsymbol,
|
symbol_set_names (struct general_symbol_info *gsymbol,
|
||||||
const char *name, int len, struct objfile *objfile)
|
const char *linkage_name, int len, struct objfile *objfile)
|
||||||
{
|
{
|
||||||
char **slot;
|
char **slot;
|
||||||
const char *tmpname;
|
/* A 0-terminated copy of the linkage name. */
|
||||||
|
const char *linkage_name_copy;
|
||||||
|
|
||||||
if (objfile->demangled_names_hash == NULL)
|
if (objfile->demangled_names_hash == NULL)
|
||||||
create_demangled_names_hash (objfile);
|
create_demangled_names_hash (objfile);
|
||||||
|
|
||||||
/* The stabs reader generally provides names that are not NULL-terminated;
|
/* The stabs reader generally provides names that are not
|
||||||
most of the other readers don't do this, so we can just use the given
|
NUL-terminated; most of the other readers don't do this, so we
|
||||||
copy. */
|
can just use the given copy. */
|
||||||
if (name[len] != 0)
|
if (linkage_name[len] != '\0')
|
||||||
{
|
{
|
||||||
char *alloc_name = alloca (len + 1);
|
char *alloc_name;
|
||||||
memcpy (alloc_name, name, len);
|
|
||||||
alloc_name[len] = 0;
|
alloc_name = alloca (len + 1);
|
||||||
tmpname = alloc_name;
|
memcpy (alloc_name, linkage_name, len);
|
||||||
|
alloc_name[len] = '\0';
|
||||||
|
|
||||||
|
linkage_name_copy = alloc_name;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
tmpname = name;
|
{
|
||||||
|
linkage_name_copy = linkage_name;
|
||||||
|
}
|
||||||
|
|
||||||
slot = (char **) htab_find_slot (objfile->demangled_names_hash, tmpname, INSERT);
|
slot = (char **) htab_find_slot (objfile->demangled_names_hash,
|
||||||
|
linkage_name_copy, INSERT);
|
||||||
|
|
||||||
/* If this name is not in the hash table, add it. */
|
/* If this name is not in the hash table, add it. */
|
||||||
if (*slot == NULL)
|
if (*slot == NULL)
|
||||||
{
|
{
|
||||||
char *demangled_name = symbol_find_demangled_name (gsymbol, tmpname);
|
char *demangled_name = symbol_find_demangled_name (gsymbol,
|
||||||
|
linkage_name_copy);
|
||||||
int demangled_len = demangled_name ? strlen (demangled_name) : 0;
|
int demangled_len = demangled_name ? strlen (demangled_name) : 0;
|
||||||
|
|
||||||
/* If there is a demangled name, place it right after the mangled name.
|
/* If there is a demangled name, place it right after the mangled name.
|
||||||
|
@ -525,18 +534,18 @@ symbol_set_names (struct general_symbol_info *gsymbol,
|
||||||
name. */
|
name. */
|
||||||
*slot = obstack_alloc (&objfile->symbol_obstack,
|
*slot = obstack_alloc (&objfile->symbol_obstack,
|
||||||
len + demangled_len + 2);
|
len + demangled_len + 2);
|
||||||
memcpy (*slot, tmpname, len + 1);
|
memcpy (*slot, linkage_name_copy, len + 1);
|
||||||
if (demangled_name)
|
if (demangled_name != NULL)
|
||||||
{
|
{
|
||||||
memcpy (*slot + len + 1, demangled_name, demangled_len + 1);
|
memcpy (*slot + len + 1, demangled_name, demangled_len + 1);
|
||||||
xfree (demangled_name);
|
xfree (demangled_name);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
(*slot)[len + 1] = 0;
|
(*slot)[len + 1] = '\0';
|
||||||
}
|
}
|
||||||
|
|
||||||
gsymbol->name = *slot;
|
gsymbol->name = *slot;
|
||||||
if ((*slot)[len + 1])
|
if ((*slot)[len + 1] != '\0')
|
||||||
gsymbol->language_specific.cplus_specific.demangled_name
|
gsymbol->language_specific.cplus_specific.demangled_name
|
||||||
= &(*slot)[len + 1];
|
= &(*slot)[len + 1];
|
||||||
else
|
else
|
||||||
|
|
|
@ -158,10 +158,10 @@ extern void symbol_init_language_specific (struct general_symbol_info *symbol,
|
||||||
extern void symbol_init_demangled_name (struct general_symbol_info *symbol,
|
extern void symbol_init_demangled_name (struct general_symbol_info *symbol,
|
||||||
struct obstack *obstack);
|
struct obstack *obstack);
|
||||||
|
|
||||||
#define SYMBOL_SET_NAMES(symbol,name,len,objfile) \
|
#define SYMBOL_SET_NAMES(symbol,linkage_name,len,objfile) \
|
||||||
symbol_set_names (&(symbol)->ginfo, name, len, objfile)
|
symbol_set_names (&(symbol)->ginfo, linkage_name, len, objfile)
|
||||||
extern void symbol_set_names (struct general_symbol_info *symbol,
|
extern void symbol_set_names (struct general_symbol_info *symbol,
|
||||||
const char *name, int len,
|
const char *linkage_name, int len,
|
||||||
struct objfile *objfile);
|
struct objfile *objfile);
|
||||||
|
|
||||||
/* Now come lots of name accessor macros. Short version as to when to
|
/* Now come lots of name accessor macros. Short version as to when to
|
||||||
|
|
Loading…
Reference in New Issue