summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDavid Carlton <carlton@bactrian.org>2003-04-14 19:55:27 +0000
committerDavid Carlton <carlton@bactrian.org>2003-04-14 19:55:27 +0000
commit8ca08a94a979d65cd14c2340b6a4767c00cb3677 (patch)
tree97d92d0a4fe9b46e732cd46d45a4ca606529fb52
parent9995a1d71992658b5fb920ca94a00f4868d75b1a (diff)
downloadgdb-8ca08a94a979d65cd14c2340b6a4767c00cb3677.tar.gz
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'.
-rw-r--r--gdb/ChangeLog8
-rw-r--r--gdb/symtab.c51
-rw-r--r--gdb/symtab.h6
3 files changed, 41 insertions, 24 deletions
diff --git a/gdb/ChangeLog b/gdb/ChangeLog
index 081d73ce26e..9b0e63e257f 100644
--- a/gdb/ChangeLog
+++ b/gdb/ChangeLog
@@ -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>
* mips-tdep.c (mips_read_sp): Do not apply ADDR_BITS_REMOVE,
diff --git a/gdb/symtab.c b/gdb/symtab.c
index 173d08a48f9..1337e646f6d 100644
--- a/gdb/symtab.c
+++ b/gdb/symtab.c
@@ -484,40 +484,49 @@ symbol_find_demangled_name (struct general_symbol_info *gsymbol,
return NULL;
}
-/* Set both the mangled and demangled (if any) names for GSYMBOL based on
- NAME and LEN. The hash table corresponding to OBJFILE is used, and the
- memory comes from that objfile's symbol_obstack. NAME is copied, so the
- pointer can be discarded after calling this function. */
+/* Set both the mangled and demangled (if any) names for GSYMBOL based
+ on LINKAGE_NAME and LEN. The hash table corresponding to OBJFILE
+ is used, and the memory comes from that objfile's symbol_obstack.
+ LINKAGE_NAME is copied, so the pointer can be discarded after
+ calling this function. */
void
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;
- const char *tmpname;
+ /* A 0-terminated copy of the linkage name. */
+ const char *linkage_name_copy;
if (objfile->demangled_names_hash == NULL)
create_demangled_names_hash (objfile);
- /* The stabs reader generally provides names that are not NULL-terminated;
- most of the other readers don't do this, so we can just use the given
- copy. */
- if (name[len] != 0)
+ /* The stabs reader generally provides names that are not
+ NUL-terminated; most of the other readers don't do this, so we
+ can just use the given copy. */
+ if (linkage_name[len] != '\0')
{
- char *alloc_name = alloca (len + 1);
- memcpy (alloc_name, name, len);
- alloc_name[len] = 0;
- tmpname = alloc_name;
+ char *alloc_name;
+
+ alloc_name = alloca (len + 1);
+ memcpy (alloc_name, linkage_name, len);
+ alloc_name[len] = '\0';
+
+ linkage_name_copy = alloc_name;
}
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 (*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;
/* 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. */
*slot = obstack_alloc (&objfile->symbol_obstack,
len + demangled_len + 2);
- memcpy (*slot, tmpname, len + 1);
- if (demangled_name)
+ memcpy (*slot, linkage_name_copy, len + 1);
+ if (demangled_name != NULL)
{
memcpy (*slot + len + 1, demangled_name, demangled_len + 1);
xfree (demangled_name);
}
else
- (*slot)[len + 1] = 0;
+ (*slot)[len + 1] = '\0';
}
gsymbol->name = *slot;
- if ((*slot)[len + 1])
+ if ((*slot)[len + 1] != '\0')
gsymbol->language_specific.cplus_specific.demangled_name
= &(*slot)[len + 1];
else
diff --git a/gdb/symtab.h b/gdb/symtab.h
index 49ec2b548d8..05275363936 100644
--- a/gdb/symtab.h
+++ b/gdb/symtab.h
@@ -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,
struct obstack *obstack);
-#define SYMBOL_SET_NAMES(symbol,name,len,objfile) \
- symbol_set_names (&(symbol)->ginfo, name, len, objfile)
+#define SYMBOL_SET_NAMES(symbol,linkage_name,len,objfile) \
+ symbol_set_names (&(symbol)->ginfo, linkage_name, len, objfile)
extern void symbol_set_names (struct general_symbol_info *symbol,
- const char *name, int len,
+ const char *linkage_name, int len,
struct objfile *objfile);
/* Now come lots of name accessor macros. Short version as to when to