[RFA] Remove some cleanups from solib.c

Message ID 20180318212404.25730-1-tom@tromey.com
State New
Headers show
Series
  • [RFA] Remove some cleanups from solib.c
Related show

Commit Message

Tom Tromey March 18, 2018, 9:24 p.m.
This removes some cleanups from solib.c, replacing them with
gdb::def_vector.

Regression tested by the buildbot.

gdb/ChangeLog
2018-03-18  Tom Tromey  <tom@tromey.com>

	* solib.c (gdb_bfd_lookup_symbol_from_symtab): Use
	gdb::def_vector.
	(bfd_lookup_symbol_from_dyn_symtab): Likewise.
---
 gdb/ChangeLog |  6 ++++++
 gdb/solib.c   | 10 ++++------
 2 files changed, 10 insertions(+), 6 deletions(-)

-- 
2.13.6

Comments

Simon Marchi March 18, 2018, 11:55 p.m. | #1
On 2018-03-18 05:24 PM, Tom Tromey wrote:
> This removes some cleanups from solib.c, replacing them with

> gdb::def_vector.

> 

> Regression tested by the buildbot.


LGTM.

Simon

Patch

diff --git a/gdb/solib.c b/gdb/solib.c
index f9a31bca19..77c1268449 100644
--- a/gdb/solib.c
+++ b/gdb/solib.c
@@ -1474,8 +1474,8 @@  gdb_bfd_lookup_symbol_from_symtab (bfd *abfd,
     {
       unsigned int i;
 
-      asymbol **symbol_table = (asymbol **) xmalloc (storage_needed);
-      struct cleanup *back_to = make_cleanup (xfree, symbol_table);
+      gdb::def_vector<asymbol *> storage (storage_needed / sizeof (asymbol *));
+      asymbol **symbol_table = storage.data ();
       unsigned int number_of_symbols =
 	bfd_canonicalize_symtab (abfd, symbol_table);
 
@@ -1510,7 +1510,6 @@  gdb_bfd_lookup_symbol_from_symtab (bfd *abfd,
 	      break;
 	    }
 	}
-      do_cleanups (back_to);
     }
 
   return symaddr;
@@ -1533,8 +1532,8 @@  bfd_lookup_symbol_from_dyn_symtab (bfd *abfd,
   if (storage_needed > 0)
     {
       unsigned int i;
-      asymbol **symbol_table = (asymbol **) xmalloc (storage_needed);
-      struct cleanup *back_to = make_cleanup (xfree, symbol_table);
+      gdb::def_vector<asymbol *> storage (storage_needed / sizeof (asymbol *));
+      asymbol **symbol_table = storage.data ();
       unsigned int number_of_symbols =
 	bfd_canonicalize_dynamic_symtab (abfd, symbol_table);
 
@@ -1549,7 +1548,6 @@  bfd_lookup_symbol_from_dyn_symtab (bfd *abfd,
 	      break;
 	    }
 	}
-      do_cleanups (back_to);
     }
   return symaddr;
 }