From 869d89506ca4b97b1b31d0d9e7508d980a3653b6 Mon Sep 17 00:00:00 2001 From: Tom Tromey Date: Wed, 19 Feb 2020 17:16:51 -0700 Subject: [PATCH] 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. --- gdb/ChangeLog | 5 +++++ gdb/symtab.c | 18 +++++------------- 2 files changed, 10 insertions(+), 13 deletions(-) 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. */ -- 2.30.2