diff options
author | Tom Tromey <tom@tromey.com> | 2018-05-20 10:22:19 -0600 |
---|---|---|
committer | Tom Tromey <tom@tromey.com> | 2018-07-16 08:55:14 -0600 |
commit | 905eb0e293820ae91941100ebed291a8f74e1f12 (patch) | |
tree | c2ccbf9b9fb5de3a825614511b5b97f7a5883c6e | |
parent | b248663fe5654192101fc95dbe0cbfb389564359 (diff) | |
download | gdb-905eb0e293820ae91941100ebed291a8f74e1f12.zip gdb-905eb0e293820ae91941100ebed291a8f74e1f12.tar.gz gdb-905eb0e293820ae91941100ebed291a8f74e1f12.tar.bz2 |
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 <tom@tromey.com>
* buildsym.c (~buildsym_compunit): Update.
(struct buildsym_compunit) <comp_unit>: Now a unique_xmalloc_ptr.
(start_subfile, patch_subfile_names)
(end_symtab_with_blockvector): Update.
-rw-r--r-- | gdb/ChangeLog | 7 | ||||
-rw-r--r-- | gdb/buildsym.c | 11 |
2 files changed, 12 insertions, 6 deletions
diff --git a/gdb/ChangeLog b/gdb/ChangeLog index dbfb028..29df4a0 100644 --- a/gdb/ChangeLog +++ b/gdb/ChangeLog @@ -1,5 +1,12 @@ 2018-07-16 Tom Tromey <tom@tromey.com> + * buildsym.c (~buildsym_compunit): Update. + (struct buildsym_compunit) <comp_unit>: Now a unique_xmalloc_ptr. + (start_subfile, patch_subfile_names) + (end_symtab_with_blockvector): Update. + +2018-07-16 Tom Tromey <tom@tromey.com> + * buildsym.c (struct buildsym_compunit): Add constructor, destructor, initializers. (start_buildsym_compunit): Remove. diff --git a/gdb/buildsym.c b/gdb/buildsym.c index b693565..b548c52 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<char> 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. */ |