diff options
author | Tom Tromey <tromey@adacore.com> | 2019-10-31 10:34:40 -0600 |
---|---|---|
committer | Tom Tromey <tromey@adacore.com> | 2020-01-08 11:17:18 -0700 |
commit | 421d1616230a78449dc2f5abb60f03d38b96c3cf (patch) | |
tree | d772378669c047cf650d85849f9f4b95a1b3d987 /gdb/dwarf2read.c | |
parent | 43816ebc335481c99808c4fdfffb9ea3f510b19a (diff) | |
download | gdb-421d1616230a78449dc2f5abb60f03d38b96c3cf.zip gdb-421d1616230a78449dc2f5abb60f03d38b96c3cf.tar.gz gdb-421d1616230a78449dc2f5abb60f03d38b96c3cf.tar.bz2 |
Use unique_xmalloc_ptr in fixup_go_packaging
This changes fixup_go_packaging to use unique_xmalloc_ptr. I kept
this patch separate as it is slightly more complicated than the
previous changes.
gdb/ChangeLog
2020-01-08 Tom Tromey <tromey@adacore.com>
* dwarf2read.c (fixup_go_packaging): Use unique_xmalloc_ptr.
Change-Id: I0c553d0c6579db478c27bc40fc21133a61e1a4d9
Diffstat (limited to 'gdb/dwarf2read.c')
-rw-r--r-- | gdb/dwarf2read.c | 16 |
1 files changed, 7 insertions, 9 deletions
diff --git a/gdb/dwarf2read.c b/gdb/dwarf2read.c index 03c2798..b2d6136 100644 --- a/gdb/dwarf2read.c +++ b/gdb/dwarf2read.c @@ -9892,7 +9892,7 @@ compute_delayed_physnames (struct dwarf2_cu *cu) static void fixup_go_packaging (struct dwarf2_cu *cu) { - char *package_name = NULL; + gdb::unique_xmalloc_ptr<char> package_name; struct pending *list; int i; @@ -9907,24 +9907,24 @@ fixup_go_packaging (struct dwarf2_cu *cu) if (sym->language () == language_go && SYMBOL_CLASS (sym) == LOC_BLOCK) { - char *this_package_name = go_symbol_package_name (sym); + gdb::unique_xmalloc_ptr<char> this_package_name + (go_symbol_package_name (sym)); if (this_package_name == NULL) continue; if (package_name == NULL) - package_name = this_package_name; + package_name = std::move (this_package_name); else { struct objfile *objfile = cu->per_cu->dwarf2_per_objfile->objfile; - if (strcmp (package_name, this_package_name) != 0) + if (strcmp (package_name.get (), this_package_name.get ()) != 0) complaint (_("Symtab %s has objects from two different Go packages: %s and %s"), (symbol_symtab (sym) != NULL ? symtab_to_filename_for_display (symbol_symtab (sym)) : objfile_name (objfile)), - this_package_name, package_name); - xfree (this_package_name); + this_package_name.get (), package_name.get ()); } } } @@ -9934,7 +9934,7 @@ fixup_go_packaging (struct dwarf2_cu *cu) { struct objfile *objfile = cu->per_cu->dwarf2_per_objfile->objfile; const char *saved_package_name - = obstack_strdup (&objfile->per_bfd->storage_obstack, package_name); + = obstack_strdup (&objfile->per_bfd->storage_obstack, package_name.get ()); struct type *type = init_type (objfile, TYPE_CODE_MODULE, 0, saved_package_name); struct symbol *sym; @@ -9949,8 +9949,6 @@ fixup_go_packaging (struct dwarf2_cu *cu) SYMBOL_TYPE (sym) = type; add_symbol_to_list (sym, cu->get_builder ()->get_global_symbols ()); - - xfree (package_name); } } |