aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTom Tromey <tom@tromey.com>2017-08-03 16:34:56 -0600
committerTom Tromey <tom@tromey.com>2017-08-22 09:30:11 -0600
commit4971c9a74b47103582834e46d0185390379e60b3 (patch)
tree222a7707d371fc4eda57210839ae91c900132960
parente3e41d588adbe26a6ca54338dd4915382d981a3e (diff)
downloadgdb-4971c9a74b47103582834e46d0185390379e60b3.zip
gdb-4971c9a74b47103582834e46d0185390379e60b3.tar.gz
gdb-4971c9a74b47103582834e46d0185390379e60b3.tar.bz2
Change gdb_realpath_keepfile to return a unique_xmalloc_ptr
This changes gdb_realpath_keepfile to return a unique_xmalloc_ptr, and fixes up the callers. ChangeLog 2017-08-22 Tom Tromey <tom@tromey.com> * utils.c (gdb_realpath_keepfile): Return a gdb::unique_xmalloc_ptr. * exec.c (exec_file_attach): Update. * utils.h (gdb_realpath_keepfile): Return a gdb::unique_xmalloc_ptr.
-rw-r--r--gdb/ChangeLog8
-rw-r--r--gdb/exec.c2
-rw-r--r--gdb/utils.c6
-rw-r--r--gdb/utils.h2
4 files changed, 13 insertions, 5 deletions
diff --git a/gdb/ChangeLog b/gdb/ChangeLog
index bb49bc8..8a2bf88 100644
--- a/gdb/ChangeLog
+++ b/gdb/ChangeLog
@@ -1,5 +1,13 @@
2017-08-22 Tom Tromey <tom@tromey.com>
+ * utils.c (gdb_realpath_keepfile): Return a
+ gdb::unique_xmalloc_ptr.
+ * exec.c (exec_file_attach): Update.
+ * utils.h (gdb_realpath_keepfile): Return a
+ gdb::unique_xmalloc_ptr.
+
+2017-08-22 Tom Tromey <tom@tromey.com>
+
* compile/compile.c (compile_file_command): Use
gdb::unique_xmalloc_ptr, std::string.
* utils.c (gdb_abspath): Change return type.
diff --git a/gdb/exec.c b/gdb/exec.c
index 6980b07..45bc133 100644
--- a/gdb/exec.c
+++ b/gdb/exec.c
@@ -352,7 +352,7 @@ exec_file_attach (const char *filename, int from_tty)
if (load_via_target)
exec_filename = xstrdup (bfd_get_filename (exec_bfd));
else
- exec_filename = gdb_realpath_keepfile (scratch_pathname);
+ exec_filename = gdb_realpath_keepfile (scratch_pathname).release ();
if (!bfd_check_format_matches (exec_bfd, bfd_object, &matching))
{
diff --git a/gdb/utils.c b/gdb/utils.c
index 9959c01..5bdc638 100644
--- a/gdb/utils.c
+++ b/gdb/utils.c
@@ -2716,7 +2716,7 @@ gdb_realpath (const char *filename)
/* Return a copy of FILENAME, with its directory prefix canonicalized
by gdb_realpath. */
-char *
+gdb::unique_xmalloc_ptr<char>
gdb_realpath_keepfile (const char *filename)
{
const char *base_name = lbasename (filename);
@@ -2727,7 +2727,7 @@ gdb_realpath_keepfile (const char *filename)
/* Extract the basename of filename, and return immediately
a copy of filename if it does not contain any directory prefix. */
if (base_name == filename)
- return xstrdup (filename);
+ return gdb::unique_xmalloc_ptr<char> (xstrdup (filename));
dir_name = (char *) alloca ((size_t) (base_name - filename + 2));
/* Allocate enough space to store the dir_name + plus one extra
@@ -2756,7 +2756,7 @@ gdb_realpath_keepfile (const char *filename)
result = concat (real_path, SLASH_STRING, base_name, (char *) NULL);
xfree (real_path);
- return result;
+ return gdb::unique_xmalloc_ptr<char> (result);
}
/* Return PATH in absolute form, performing tilde-expansion if necessary.
diff --git a/gdb/utils.h b/gdb/utils.h
index a2a959f..477257b 100644
--- a/gdb/utils.h
+++ b/gdb/utils.h
@@ -254,7 +254,7 @@ extern struct cleanup *make_bpstat_clear_actions_cleanup (void);
extern char *gdb_realpath (const char *);
-extern char *gdb_realpath_keepfile (const char *);
+extern gdb::unique_xmalloc_ptr<char> gdb_realpath_keepfile (const char *);
extern gdb::unique_xmalloc_ptr<char> gdb_abspath (const char *);