Remove last cleanup from btrace code
authorTom Tromey <tom@tromey.com>
Thu, 7 Jun 2018 21:38:25 +0000 (15:38 -0600)
committerTom Tromey <tom@tromey.com>
Fri, 8 Jun 2018 13:05:49 +0000 (07:05 -0600)
This removes the last cleanup from btrace.c, replacing it with a use
of unique_xmalloc_ptr.

gdb/ChangeLog
2018-06-08  Tom Tromey  <tom@tromey.com>

* btrace.c (parse_xml_raw): Use gdb::unique_xmalloc_ptr.

gdb/ChangeLog
gdb/btrace.c

index da002fa56a48d0f7d08ad7c0cb76f0dc9153b7eb..4f732b5b81b8d1b3a9220ad3d3549f2a5f787ac8 100644 (file)
@@ -1,3 +1,7 @@
+2018-06-08  Tom Tromey  <tom@tromey.com>
+
+       * btrace.c (parse_xml_raw): Use gdb::unique_xmalloc_ptr.
+
 2018-06-08  Tom Tromey  <tom@tromey.com>
 
        * common/btrace-common.h (struct btrace_data): Add constructor,
index 690770572e81e0734d42e7ae9955599ce972910b..b8894a24ba0f911a7650f48d4f79a57a9d7667a4 100644 (file)
@@ -2056,8 +2056,7 @@ static void
 parse_xml_raw (struct gdb_xml_parser *parser, const char *body_text,
               gdb_byte **pdata, size_t *psize)
 {
-  struct cleanup *cleanup;
-  gdb_byte *data, *bin;
+  gdb_byte *bin;
   size_t len, size;
 
   len = strlen (body_text);
@@ -2066,8 +2065,8 @@ parse_xml_raw (struct gdb_xml_parser *parser, const char *body_text,
 
   size = len / 2;
 
-  bin = data = (gdb_byte *) xmalloc (size);
-  cleanup = make_cleanup (xfree, data);
+  gdb::unique_xmalloc_ptr<gdb_byte> data ((gdb_byte *) xmalloc (size));
+  bin = data.get ();
 
   /* We use hex encoding - see common/rsp-low.h.  */
   while (len > 0)
@@ -2084,9 +2083,7 @@ parse_xml_raw (struct gdb_xml_parser *parser, const char *body_text,
       len -= 2;
     }
 
-  discard_cleanups (cleanup);
-
-  *pdata = data;
+  *pdata = data.release ();
   *psize = size;
 }