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] Use unique_xmalloc_ptr in build_id_to_debug_bfd


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

commit 58ef3771fbbdf7fd891fceefdd4bf2720c6c1ee7
Author: Tom Tromey <tom@tromey.com>
Date:   Tue Feb 6 12:54:44 2018 -0700

    Use unique_xmalloc_ptr in build_id_to_debug_bfd
    
    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.

Diff:
---
 gdb/ChangeLog  | 4 ++++
 gdb/build-id.c | 9 +++------
 2 files changed, 7 insertions(+), 6 deletions(-)

diff --git a/gdb/ChangeLog b/gdb/ChangeLog
index 1e16a1c..d270de1 100644
--- a/gdb/ChangeLog
+++ b/gdb/ChangeLog
@@ -1,5 +1,9 @@
 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.
 
 2018-02-08  Tom Tromey  <tom@tromey.com>
diff --git a/gdb/build-id.c b/gdb/build-id.c
index 945da4f..685a2b0 100644
--- a/gdb/build-id.c
+++ b/gdb/build-id.c
@@ -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;


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