[pushed] Two compute_and_set_names simplifications

Message ID 20200220002122.28273-1-tom@tromey.com
State New
Headers show
Series
  • [pushed] Two compute_and_set_names simplifications
Related show

Commit Message

Tom Tromey Feb. 20, 2020, 12:21 a.m.
This patch simplifies compute_and_set_names in a couple of ways.

First, it changes one spot to use obstack_strndup, which is
equivalent, but more concise.

Second, the function ends with two calls to symbol_set_demangled_name.
This can be simplified to a single call.

gdb/ChangeLog
2020-02-19  Tom Tromey  <tom@tromey.com>

	* symtab.c (general_symbol_info::compute_and_set_names): Use
	obstack_strndup.  Simplify call to symbol_set_demangled_name.
---
 gdb/ChangeLog |  5 +++++
 gdb/symtab.c  | 18 +++++-------------
 2 files changed, 10 insertions(+), 13 deletions(-)

-- 
2.17.2

Patch

diff --git a/gdb/symtab.c b/gdb/symtab.c
index d99be41261c..a80b80db5af 100644
--- a/gdb/symtab.c
+++ b/gdb/symtab.c
@@ -869,14 +869,9 @@  general_symbol_info::compute_and_set_names (gdb::string_view linkage_name,
       if (!copy_name)
 	m_name = linkage_name.data ();
       else
-	{
-	  char *name = (char *) obstack_alloc (&per_bfd->storage_obstack,
-					       linkage_name.length () + 1);
-
-	  memcpy (name, linkage_name.data (), linkage_name.length ());
-	  name[linkage_name.length ()] = '\0';
-	  m_name = name;
-	}
+	m_name = obstack_strndup (&per_bfd->storage_obstack,
+				  linkage_name.data (),
+				  linkage_name.length ());
       symbol_set_demangled_name (this, NULL, &per_bfd->storage_obstack);
 
       return;
@@ -967,11 +962,8 @@  general_symbol_info::compute_and_set_names (gdb::string_view linkage_name,
     m_language = (*slot)->language;
 
   m_name = (*slot)->mangled.data ();
-  if ((*slot)->demangled != nullptr)
-    symbol_set_demangled_name (this, (*slot)->demangled.get (),
-			       &per_bfd->storage_obstack);
-  else
-    symbol_set_demangled_name (this, NULL, &per_bfd->storage_obstack);
+  symbol_set_demangled_name (this, (*slot)->demangled.get (),
+			     &per_bfd->storage_obstack);
 }
 
 /* See symtab.h.  */