From: Tom Tromey Date: Thu, 20 Feb 2020 00:16:51 +0000 (-0700) Subject: Two compute_and_set_names simplifications X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=869d89506ca4b97b1b31d0d9e7508d980a3653b6;p=binutils-gdb.git 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 * symtab.c (general_symbol_info::compute_and_set_names): Use obstack_strndup. Simplify call to symbol_set_demangled_name. --- diff --git a/gdb/ChangeLog b/gdb/ChangeLog index b4a586c333a..e3f7e9f8288 100644 --- a/gdb/ChangeLog +++ b/gdb/ChangeLog @@ -1,3 +1,8 @@ +2020-02-19 Tom Tromey + + * symtab.c (general_symbol_info::compute_and_set_names): Use + obstack_strndup. Simplify call to symbol_set_demangled_name. + 2020-02-19 Simon Marchi * dwarf2/read.c (allocate_signatured_type_table, 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. */