Two compute_and_set_names simplifications

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.
This commit is contained in:
Tom Tromey 2020-02-19 17:16:51 -07:00
parent 5f1839bbd2
commit 869d89506c
2 changed files with 10 additions and 13 deletions

View file

@ -1,3 +1,8 @@
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.
2020-02-19 Simon Marchi <simon.marchi@efficios.com> 2020-02-19 Simon Marchi <simon.marchi@efficios.com>
* dwarf2/read.c (allocate_signatured_type_table, * dwarf2/read.c (allocate_signatured_type_table,

View file

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