[2/5] cp-namespace.c cleanup pass: simplify cp_lookup_symbol_in_namespace
Commit Message
Doug Evans <xdje42@gmail.com> writes:
> This patch is just a simplification of one function.
>
> Rather than having two calls to lookup_symbol_file,
> the patch reduces it to just one.
>
> 2014-12-14 Doug Evans <xdje42@gmail.com>
>
> * cp-namespace.c (cp_lookup_symbol_in_namespace): Simplify.
Hi.
Here is a revised patch for current HEAD.
2014-12-17 Doug Evans <xdje42@gmail.com>
* cp-namespace.c (cp_lookup_symbol_in_namespace): Simplify.
@@ -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