[RFA,3/4] Use gdb::def_vector in create_sals_line_offset

Message ID 20170909004129.28782-4-tom@tromey.com
State New, archived
Headers

Commit Message

Tom Tromey Sept. 9, 2017, 12:41 a.m. UTC
  This changes create_sals_line_offset to use gdb::def_vector, removing
some cleanups.

gdb/ChangeLog
2017-09-08  Tom Tromey  <tom@tromey.com>

	* linespec.c (create_sals_line_offset): Use gdb::def_vector.
---
 gdb/ChangeLog  |  4 ++++
 gdb/linespec.c | 11 +++--------
 2 files changed, 7 insertions(+), 8 deletions(-)
  

Patch

diff --git a/gdb/ChangeLog b/gdb/ChangeLog
index 1f8bb71..4f4b543 100644
--- a/gdb/ChangeLog
+++ b/gdb/ChangeLog
@@ -1,5 +1,9 @@ 
 2017-09-08  Tom Tromey  <tom@tromey.com>
 
+	* linespec.c (create_sals_line_offset): Use gdb::def_vector.
+
+2017-09-08  Tom Tromey  <tom@tromey.com>
+
 	* p-valprint.c (pascal_object_print_value): Use gdb::byte_vector.
 
 2017-09-08  Tom Tromey  <tom@tromey.com>
diff --git a/gdb/linespec.c b/gdb/linespec.c
index 4801808..abe6615 100644
--- a/gdb/linespec.c
+++ b/gdb/linespec.c
@@ -45,6 +45,7 @@ 
 #include "stack.h"
 #include "location.h"
 #include "common/function-view.h"
+#include "common/def-vector.h"
 
 /* An enumeration of the various things a user might attempt to
    complete for a linespec location.  */
@@ -2182,8 +2183,6 @@  create_sals_line_offset (struct linespec_state *self,
   else
     {
       struct linetable_entry *best_entry = NULL;
-      int *filter;
-      const struct block **blocks;
       int i, j;
 
       std::vector<symtab_and_line> intermediate_results
@@ -2203,10 +2202,8 @@  create_sals_line_offset (struct linespec_state *self,
 	 above, we see if there are other PCs that are in the same
 	 block.  If yes, the other PCs are filtered out.  */
 
-      filter = XNEWVEC (int, intermediate_results.size ());
-      struct cleanup *cleanup = make_cleanup (xfree, filter);
-      blocks = XNEWVEC (const struct block *, intermediate_results.size ());
-      make_cleanup (xfree, blocks);
+      gdb::def_vector<int> filter (intermediate_results.size ());
+      gdb::def_vector<const block *> blocks (intermediate_results.size ());
 
       for (i = 0; i < intermediate_results.size (); ++i)
 	{
@@ -2245,8 +2242,6 @@  create_sals_line_offset (struct linespec_state *self,
 	    add_sal_to_sals (self, &values, &intermediate_results[i],
 			     sym ? SYMBOL_NATURAL_NAME (sym) : NULL, 0);
 	  }
-
-      do_cleanups (cleanup);
     }
 
   if (values.empty ())