[binutils-gdb] Change breakpoint::filter to be a unique_xmalloc_ptr

Tom Tromey tromey@sourceware.org
Tue Aug 6 14:03:00 GMT 2019


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

commit c0e8dcd87101119806c5bbca4c7b649c1b8c0996
Author: Tom Tromey <tromey@adacore.com>
Date:   Tue Jul 23 12:41:02 2019 -0600

    Change breakpoint::filter to be a unique_xmalloc_ptr
    
    This changes breakpoint::filter to be a unique_xmalloc_ptr, removing
    an explicit xfree, as well as a use of a "release" method.
    
    gdb/ChangeLog
    2019-08-06  Tom Tromey  <tromey@adacore.com>
    
    	* breakpoint.c (init_breakpoint_sal): Update.
    	(breakpoint): Update.
    	* breakpoint.h (struct breakpoint) <filter>: Now a
    	unique_xmalloc_ptr.

Diff:
---
 gdb/ChangeLog    | 7 +++++++
 gdb/breakpoint.c | 5 ++---
 gdb/breakpoint.h | 5 ++---
 3 files changed, 11 insertions(+), 6 deletions(-)

diff --git a/gdb/ChangeLog b/gdb/ChangeLog
index b17b252..e1bd880 100644
--- a/gdb/ChangeLog
+++ b/gdb/ChangeLog
@@ -1,3 +1,10 @@
+2019-08-06  Tom Tromey  <tromey@adacore.com>
+
+	* breakpoint.c (init_breakpoint_sal): Update.
+	(breakpoint): Update.
+	* breakpoint.h (struct breakpoint) <filter>: Now a
+	unique_xmalloc_ptr.
+
 2019-08-05  Christian Biesinger  <cbiesinger@google.com>
 
 	* NEWS: Mention dictionary access on blocks.
diff --git a/gdb/breakpoint.c b/gdb/breakpoint.c
index e0c9aa4..7a1e782 100644
--- a/gdb/breakpoint.c
+++ b/gdb/breakpoint.c
@@ -8850,7 +8850,7 @@ init_breakpoint_sal (struct breakpoint *b, struct gdbarch *gdbarch,
     b->location = std::move (location);
   else
     b->location = new_address_location (b->loc->address, NULL, 0);
-  b->filter = filter.release ();
+  b->filter = std::move (filter);
 }
 
 static void
@@ -12124,7 +12124,6 @@ breakpoint::~breakpoint ()
 {
   xfree (this->cond_string);
   xfree (this->extra_string);
-  xfree (this->filter);
 }
 
 static struct bp_location *
@@ -13701,7 +13700,7 @@ decode_location_default (struct breakpoint *b,
 
   decode_line_full (location, DECODE_LINE_FUNFIRSTLINE, search_pspace,
 		    NULL, 0, &canonical, multiple_symbols_all,
-		    b->filter);
+		    b->filter.get ());
 
   /* We should get 0 or 1 resulting SALs.  */
   gdb_assert (canonical.lsals.size () < 2);
diff --git a/gdb/breakpoint.h b/gdb/breakpoint.h
index a825be7..69a043c 100644
--- a/gdb/breakpoint.h
+++ b/gdb/breakpoint.h
@@ -734,9 +734,8 @@ struct breakpoint
   event_location_up location;
 
   /* The filter that should be passed to decode_line_full when
-     re-setting this breakpoint.  This may be NULL, but otherwise is
-     allocated with xmalloc.  */
-  char *filter = NULL;
+     re-setting this breakpoint.  This may be NULL.  */
+  gdb::unique_xmalloc_ptr<char> filter;
 
   /* For a ranged breakpoint, the location we used to find the end of
      the range.  */



More information about the Gdb-cvs mailing list