X-Git-Url: http://git.efficios.com/?a=blobdiff_plain;f=gdb%2Fstabsread.c;h=eac47407105a7b81068b00a3c5b78da7310002c8;hb=596dc4adfff347b4d8dc1f7e4eb57b8f2f342281;hp=5ef7748a9ebfc59bd9345e6001386d10ef1712ee;hpb=bf4cb9bee210298c813f87aae005432d2e934449;p=deliverable%2Fbinutils-gdb.git diff --git a/gdb/stabsread.c b/gdb/stabsread.c index 5ef7748a9e..eac4740710 100644 --- a/gdb/stabsread.c +++ b/gdb/stabsread.c @@ -738,7 +738,7 @@ define_symbol (CORE_ADDR valu, const char *string, int desc, int type, else { normal: - std::string new_name; + gdb::unique_xmalloc_ptr new_name; if (sym->language () == language_cplus) { @@ -748,8 +748,8 @@ define_symbol (CORE_ADDR valu, const char *string, int desc, int type, name[p - string] = '\0'; new_name = cp_canonicalize_string (name); } - if (!new_name.empty ()) - sym->compute_and_set_names (new_name, true, objfile->per_bfd); + if (new_name != nullptr) + sym->compute_and_set_names (new_name.get (), true, objfile->per_bfd); else sym->compute_and_set_names (gdb::string_view (string, p - string), true, objfile->per_bfd); @@ -1637,10 +1637,10 @@ again: memcpy (name, *pp, p - *pp); name[p - *pp] = '\0'; - std::string new_name = cp_canonicalize_string (name); - if (!new_name.empty ()) + gdb::unique_xmalloc_ptr new_name = cp_canonicalize_string (name); + if (new_name != nullptr) type_name = obstack_strdup (&objfile->objfile_obstack, - new_name); + new_name.get ()); } if (type_name == NULL) {