diff options
author | Tom Tromey <tom@tromey.com> | 2016-09-24 21:31:36 -0600 |
---|---|---|
committer | Tom Tromey <tom@tromey.com> | 2016-10-21 14:17:36 -0600 |
commit | d1e4a624699fd734b3b6e87fb79a4da71c182dfd (patch) | |
tree | 112349de52e0105c4526f83da0bd1cb32b687635 /gdb/elfread.c | |
parent | cd9da5b077c21f0984cfbdac060ced6f4945ce06 (diff) | |
download | gdb-d1e4a624699fd734b3b6e87fb79a4da71c182dfd.zip gdb-d1e4a624699fd734b3b6e87fb79a4da71c182dfd.tar.gz gdb-d1e4a624699fd734b3b6e87fb79a4da71c182dfd.tar.bz2 |
Use gdb::unique_ptr in elf_read_minimal_symbols
This changes elf_read_minimal_symbols to use gdb::unique_ptr rather
than an explicit allocation. This removes a cleanup.
2016-10-21 Tom Tromey <tom@tromey.com>
* elfread.c (elf_read_minimal_symbols): Use gdb::unique_ptr.
Diffstat (limited to 'gdb/elfread.c')
-rw-r--r-- | gdb/elfread.c | 11 |
1 files changed, 3 insertions, 8 deletions
diff --git a/gdb/elfread.c b/gdb/elfread.c index 56fac28..485e55d 100644 --- a/gdb/elfread.c +++ b/gdb/elfread.c @@ -1024,7 +1024,6 @@ elf_read_minimal_symbols (struct objfile *objfile, int symfile_flags, const struct elfinfo *ei) { bfd *synth_abfd, *abfd = objfile->obfd; - struct cleanup *back_to; long symcount = 0, dynsymcount = 0, synthcount, storage_needed; asymbol **symbol_table = NULL, **dyn_symbol_table = NULL; asymbol *synthsyms; @@ -1053,7 +1052,6 @@ elf_read_minimal_symbols (struct objfile *objfile, int symfile_flags, } minimal_symbol_reader reader (objfile); - back_to = make_cleanup (null_cleanup, NULL); /* Allocate struct to keep track of the symfile. */ dbx = XCNEW (struct dbx_symfile_info); @@ -1135,16 +1133,14 @@ elf_read_minimal_symbols (struct objfile *objfile, int symfile_flags, &synthsyms); if (synthcount > 0) { - asymbol **synth_symbol_table; long i; - make_cleanup (xfree, synthsyms); - synth_symbol_table = XNEWVEC (asymbol *, synthcount); + gdb::unique_ptr<asymbol *[]> + synth_symbol_table (new asymbol *[synthcount]); for (i = 0; i < synthcount; i++) synth_symbol_table[i] = synthsyms + i; - make_cleanup (xfree, synth_symbol_table); elf_symtab_read (reader, objfile, ST_SYNTHETIC, synthcount, - synth_symbol_table, 1); + synth_symbol_table.get (), 1); } /* Install any minimal symbols that have been collected as the current @@ -1154,7 +1150,6 @@ elf_read_minimal_symbols (struct objfile *objfile, int symfile_flags, which will do this. */ reader.install (); - do_cleanups (back_to); if (symtab_create_debug) fprintf_unfiltered (gdb_stdlog, "Done reading minimal symbols.\n"); |