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>
* 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)
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. */