This is the mail archive of the gdb-cvs@sourceware.org mailing list for the GDB project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[binutils-gdb] Remove some cleanups from solib.c


https://sourceware.org/git/gitweb.cgi?p=binutils-gdb.git;h=1cb1f3dae747fef1a576fe38078891e545fa92e5

commit 1cb1f3dae747fef1a576fe38078891e545fa92e5
Author: Tom Tromey <tom@tromey.com>
Date:   Fri Nov 10 13:48:48 2017 -0700

    Remove some cleanups from solib.c
    
    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.

Diff:
---
 gdb/ChangeLog |  6 ++++++
 gdb/solib.c   | 10 ++++------
 2 files changed, 10 insertions(+), 6 deletions(-)

diff --git a/gdb/ChangeLog b/gdb/ChangeLog
index 4ab82d8..634a414 100644
--- a/gdb/ChangeLog
+++ b/gdb/ChangeLog
@@ -1,3 +1,9 @@
+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.
+
 2018-03-17  Tom Tromey  <tom@tromey.com>
 
 	* auto-load.c (auto_load_objfile_script_1): Use std::string.
diff --git a/gdb/solib.c b/gdb/solib.c
index f9a31bc..77c1268 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;
 }


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]