[PATCH 2/5] cp-namespace.c cleanup pass: simplify cp_lookup_symbol_in_namespace

Doug Evans xdje42@gmail.com
Wed Dec 17 09:24:00 GMT 2014


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.

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



More information about the Gdb-patches mailing list