aboutsummaryrefslogtreecommitdiff
path: root/gdb/cp-namespace.c
diff options
context:
space:
mode:
authorDoug Evans <xdje42@gmail.com>2014-12-22 08:44:50 -0800
committerDoug Evans <xdje42@gmail.com>2014-12-22 08:44:50 -0800
commitd276311738a3863e58a1281e56e2073169e7b405 (patch)
tree2379d80d239438534bffd2941c4ecff81d6c4530 /gdb/cp-namespace.c
parent791244bea2544503c626ffdd5fdb4ff657f98207 (diff)
downloadgdb-d276311738a3863e58a1281e56e2073169e7b405.zip
gdb-d276311738a3863e58a1281e56e2073169e7b405.tar.gz
gdb-d276311738a3863e58a1281e56e2073169e7b405.tar.bz2
cp-namespace.c (cp_lookup_symbol_in_namespace): Simplify.
gdb/ChangeLog: * cp-namespace.c (cp_lookup_symbol_in_namespace): Simplify.
Diffstat (limited to 'gdb/cp-namespace.c')
-rw-r--r--gdb/cp-namespace.c19
1 files changed, 9 insertions, 10 deletions
diff --git a/gdb/cp-namespace.c b/gdb/cp-namespace.c
index bcb2275..b3ecffb 100644
--- a/gdb/cp-namespace.c
+++ b/gdb/cp-namespace.c
@@ -317,21 +317,20 @@ cp_lookup_symbol_in_namespace (const char *namespace,
const struct block *block,
const domain_enum domain, int search)
{
- if (namespace[0] == '\0')
- {
- return lookup_symbol_file (name, block, domain, 0, search);
- }
- else
- {
- char *concatenated_name = alloca (strlen (namespace) + 2
- + strlen (name) + 1);
+ char *concatenated_name = NULL;
+ int is_anonymous = namespace[0] != '\0' && cp_is_in_anonymous (namespace);
+ if (namespace[0] != '\0')
+ {
+ concatenated_name = alloca (strlen (namespace) + 2
+ + strlen (name) + 1);
strcpy (concatenated_name, namespace);
strcat (concatenated_name, "::");
strcat (concatenated_name, name);
- return lookup_symbol_file (concatenated_name, block, domain,
- cp_is_in_anonymous (namespace), search);
+ name = concatenated_name;
}
+
+ return lookup_symbol_file (name, block, domain, is_anonymous, search);
}
/* Used for cleanups to reset the "searched" flag incase