Use unique_xmalloc_ptr in build_id_to_debug_bfd
authorTom Tromey <tom@tromey.com>
Tue, 6 Feb 2018 19:54:44 +0000 (12:54 -0700)
committerTom Tromey <tom@tromey.com>
Thu, 8 Feb 2018 18:46:57 +0000 (11:46 -0700)
This changes build_id_to_debug_bfd to use a unique_xmalloc_ptr,
removing a cleanup.

2018-02-08  Tom Tromey  <tom@tromey.com>

* build-id.c (build_id_to_debug_bfd): Use unique_xmalloc_ptr.

gdb/ChangeLog
gdb/build-id.c

index 1e16a1c8c7af791a96acf4663b2933ab1a347876..d270de161ca124e09dce27f7de226e50a72310a1 100644 (file)
@@ -1,3 +1,7 @@
+2018-02-08  Tom Tromey  <tom@tromey.com>
+
+       * build-id.c (build_id_to_debug_bfd): Use unique_xmalloc_ptr.
+
 2018-02-08  Tom Tromey  <tom@tromey.com>
 
        * source.c (find_source_lines): Use gdb::def_vector.
index 945da4f3cfbf99cf44477e50da46cfeb6545e829..685a2b0370cd2093e36b6511a3d5a850f1d1b118 100644 (file)
@@ -95,8 +95,6 @@ build_id_to_debug_bfd (size_t build_id_len, const bfd_byte *build_id)
       const gdb_byte *data = build_id;
       size_t size = build_id_len;
       char *s;
-      char *filename = NULL;
-      struct cleanup *inner;
 
       memcpy (link, debugdir, debugdir_len);
       s = &link[debugdir_len];
@@ -116,16 +114,15 @@ build_id_to_debug_bfd (size_t build_id_len, const bfd_byte *build_id)
        printf_unfiltered (_("  Trying %s\n"), link);
 
       /* lrealpath() is expensive even for the usually non-existent files.  */
+      gdb::unique_xmalloc_ptr<char> filename;
       if (access (link, F_OK) == 0)
-       filename = lrealpath (link);
+       filename.reset (lrealpath (link));
 
       if (filename == NULL)
        continue;
 
       /* We expect to be silent on the non-existing files.  */
-      inner = make_cleanup (xfree, filename);
-      abfd = gdb_bfd_open (filename, gnutarget, -1);
-      do_cleanups (inner);
+      abfd = gdb_bfd_open (filename.get (), gnutarget, -1);
 
       if (abfd == NULL)
        continue;