From: Tom Tromey Date: Sun, 20 May 2018 16:22:19 +0000 (-0600) Subject: Change buildsym_compunit::comp_dir to be a unique_xmalloc_ptr X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=905eb0e293820ae91941100ebed291a8f74e1f12;p=binutils-gdb.git Change buildsym_compunit::comp_dir to be a unique_xmalloc_ptr This change buildsym_compunit::comp_dir to be a unique_xmalloc_ptr. This is just a small cleanup to remove some manual memory management. gdb/ChangeLog 2018-07-16 Tom Tromey * buildsym.c (~buildsym_compunit): Update. (struct buildsym_compunit) : Now a unique_xmalloc_ptr. (start_subfile, patch_subfile_names) (end_symtab_with_blockvector): Update. --- diff --git a/gdb/ChangeLog b/gdb/ChangeLog index dbfb028e248..29df4a009c5 100644 --- a/gdb/ChangeLog +++ b/gdb/ChangeLog @@ -1,3 +1,10 @@ +2018-07-16 Tom Tromey + + * buildsym.c (~buildsym_compunit): Update. + (struct buildsym_compunit) : Now a unique_xmalloc_ptr. + (start_subfile, patch_subfile_names) + (end_symtab_with_blockvector): Update. + 2018-07-16 Tom Tromey * buildsym.c (struct buildsym_compunit): Add constructor, diff --git a/gdb/buildsym.c b/gdb/buildsym.c index b693565aa14..b548c52e41a 100644 --- a/gdb/buildsym.c +++ b/gdb/buildsym.c @@ -126,7 +126,6 @@ struct buildsym_compunit xfree (subfile->line_vector); xfree (subfile); } - xfree (comp_dir); } /* The objfile we're reading debug info from. */ @@ -142,7 +141,7 @@ struct buildsym_compunit struct subfile *main_subfile = nullptr; /* E.g., DW_AT_comp_dir if DWARF. Space for this is malloc'd. */ - char *comp_dir; + gdb::unique_xmalloc_ptr comp_dir; /* Space for this is not malloc'd, and is assumed to have at least the same lifetime as objfile. */ @@ -699,7 +698,7 @@ start_subfile (const char *name) gdb_assert (buildsym_compunit != NULL); - subfile_dirname = buildsym_compunit->comp_dir; + subfile_dirname = buildsym_compunit->comp_dir.get (); /* See if this subfile is already registered. */ @@ -820,7 +819,7 @@ patch_subfile_names (struct subfile *subfile, const char *name) && subfile->name != NULL && IS_DIR_SEPARATOR (subfile->name[strlen (subfile->name) - 1])) { - buildsym_compunit->comp_dir = subfile->name; + buildsym_compunit->comp_dir.reset (subfile->name); subfile->name = xstrdup (name); set_last_source_file (name); @@ -1405,10 +1404,10 @@ end_symtab_with_blockvector (struct block *static_block, if (buildsym_compunit->comp_dir != NULL) { /* Reallocate the dirname on the symbol obstack. */ + const char *comp_dir = buildsym_compunit->comp_dir.get (); COMPUNIT_DIRNAME (cu) = (const char *) obstack_copy0 (&objfile->objfile_obstack, - buildsym_compunit->comp_dir, - strlen (buildsym_compunit->comp_dir)); + comp_dir, strlen (comp_dir)); } /* Save the debug format string (if any) in the symtab. */