mirror of
https://github.com/espressif/binutils-gdb.git
synced 2025-05-31 10:09:16 +08:00
Use std::string in reread_symbols
This removes a cleanup from reread_symbols by using std::string. This fixes a memory leak, because this cleanup is ordinarily discarded, not run. Tested by the buildbot. ChangeLog 2018-05-21 Tom Tromey <tom@tromey.com> * symfile.c (reread_symbols): Use std::string for original_name.
This commit is contained in:
@ -1,3 +1,7 @@
|
||||
2018-05-21 Tom Tromey <tom@tromey.com>
|
||||
|
||||
* symfile.c (reread_symbols): Use std::string for original_name.
|
||||
|
||||
2018-05-21 Tom Tromey <tom@tromey.com>
|
||||
|
||||
* dwarf2read.c (dwarf2_read_debug_names): Use std::unique_ptr.
|
||||
|
@ -2316,7 +2316,6 @@ reread_symbols (void)
|
||||
struct cleanup *old_cleanups;
|
||||
struct section_offsets *offsets;
|
||||
int num_offsets;
|
||||
char *original_name;
|
||||
|
||||
printf_unfiltered (_("`%s' has changed; re-reading symbols.\n"),
|
||||
objfile_name (objfile));
|
||||
@ -2382,8 +2381,7 @@ reread_symbols (void)
|
||||
error (_("Can't open %s to read symbols."), obfd_filename);
|
||||
}
|
||||
|
||||
original_name = xstrdup (objfile->original_name);
|
||||
make_cleanup (xfree, original_name);
|
||||
std::string original_name = objfile->original_name;
|
||||
|
||||
/* bfd_openr sets cacheable to true, which is what we want. */
|
||||
if (!bfd_check_format (objfile->obfd, bfd_object))
|
||||
@ -2429,8 +2427,9 @@ reread_symbols (void)
|
||||
set_objfile_per_bfd (objfile);
|
||||
|
||||
objfile->original_name
|
||||
= (char *) obstack_copy0 (&objfile->objfile_obstack, original_name,
|
||||
strlen (original_name));
|
||||
= (char *) obstack_copy0 (&objfile->objfile_obstack,
|
||||
original_name.c_str (),
|
||||
original_name.size ());
|
||||
|
||||
/* Reset the sym_fns pointer. The ELF reader can change it
|
||||
based on whether .gdb_index is present, and we need it to
|
||||
|
Reference in New Issue
Block a user