diff options
author | Tom Tromey <tom@tromey.com> | 2017-08-13 14:34:59 -0600 |
---|---|---|
committer | Tom Tromey <tom@tromey.com> | 2017-09-03 13:03:06 -0600 |
commit | 6eecf35f97e1d37e49e385ba599797dd1c8afd1f (patch) | |
tree | 2064a4866e0da988dc727f130cd496e4c5271e14 /gdb/cli | |
parent | 56496dd4d6519c26bb375a78588bf56b28b13512 (diff) | |
download | gdb-6eecf35f97e1d37e49e385ba599797dd1c8afd1f.zip gdb-6eecf35f97e1d37e49e385ba599797dd1c8afd1f.tar.gz gdb-6eecf35f97e1d37e49e385ba599797dd1c8afd1f.tar.bz2 |
Use unique_xmalloc_ptr in cd_command
Change cd_command to use unique_xmalloc_ptr, removing a cleanup.
ChangeLog
2017-09-03 Tom Tromey <tom@tromey.com>
* cli/cli-cmds.c (cd_command): Use gdb::unique_xmalloc_ptr.
Diffstat (limited to 'gdb/cli')
-rw-r--r-- | gdb/cli/cli-cmds.c | 20 |
1 files changed, 9 insertions, 11 deletions
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. */ |