This is the mail archive of the
gdb-patches@sourceware.org
mailing list for the GDB project.
[RFA 05/10] Use unique_xmalloc_ptr in cd_command
- From: Tom Tromey <tom at tromey dot com>
- To: gdb-patches at sourceware dot org
- Cc: Tom Tromey <tom at tromey dot com>
- Date: Tue, 29 Aug 2017 13:25:19 -0600
- Subject: [RFA 05/10] Use unique_xmalloc_ptr in cd_command
- Authentication-results: sourceware.org; auth=none
- References: <20170829192524.29971-1-tom@tromey.com>
Change cd_command to use unique_xmalloc_ptr, removing a cleanup.
ChangeLog
2017-08-29 Tom Tromey <tom@tromey.com>
* cli/cli-cmds.c (cd_command): Use gdb::unique_xmalloc_ptr.
---
gdb/ChangeLog | 4 ++++
gdb/cli/cli-cmds.c | 20 +++++++++-----------
2 files changed, 13 insertions(+), 11 deletions(-)
diff --git a/gdb/ChangeLog b/gdb/ChangeLog
index b13ce63..1d9ff74 100644
--- a/gdb/ChangeLog
+++ b/gdb/ChangeLog
@@ -1,5 +1,9 @@
2017-08-29 Tom Tromey <tom@tromey.com>
+ * cli/cli-cmds.c (cd_command): Use gdb::unique_xmalloc_ptr.
+
+2017-08-29 Tom Tromey <tom@tromey.com>
+
* mi/mi-interp.c (mi_cmd_interpreter_exec): Use std::string.
2017-08-29 Tom Tromey <tom@tromey.com>
diff --git a/gdb/cli/cli-cmds.c b/gdb/cli/cli-cmds.c
index d4dc539..8221747 100644
--- a/gdb/cli/cli-cmds.c
+++ b/gdb/cli/cli-cmds.c
@@ -398,14 +398,14 @@ cd_command (char *dir, int from_tty)
/* Found something other than leading repetitions of "/..". */
int found_real_path;
char *p;
- struct cleanup *cleanup;
/* If the new directory is absolute, repeat is a no-op; if relative,
repeat might be useful but is more likely to be a mistake. */
dont_repeat ();
- dir = tilde_expand (dir != NULL ? dir : "~");
- cleanup = make_cleanup (xfree, dir);
+ gdb::unique_xmalloc_ptr<char> dir_holder
+ (tilde_expand (dir != NULL ? dir : "~"));
+ dir = dir_holder.get ();
if (chdir (dir) < 0)
perror_with_name (dir);
@@ -430,17 +430,17 @@ cd_command (char *dir, int from_tty)
len--;
}
- dir = savestring (dir, len);
- if (IS_ABSOLUTE_PATH (dir))
- current_directory = dir;
+ dir_holder.reset (savestring (dir, len));
+ if (IS_ABSOLUTE_PATH (dir_holder.get ()))
+ current_directory = dir_holder.release ();
else
{
if (IS_DIR_SEPARATOR (current_directory[strlen (current_directory) - 1]))
- current_directory = concat (current_directory, dir, (char *)NULL);
+ current_directory = concat (current_directory, dir_holder.get (),
+ (char *) NULL);
else
current_directory = concat (current_directory, SLASH_STRING,
- dir, (char *)NULL);
- xfree (dir);
+ dir_holder.get (), (char *) NULL);
}
/* Now simplify any occurrences of `.' and `..' in the pathname. */
@@ -489,8 +489,6 @@ cd_command (char *dir, int from_tty)
if (from_tty)
pwd_command ((char *) 0, 1);
-
- do_cleanups (cleanup);
}
/* Show the current value of the 'script-extension' option. */
--
2.9.4