From be77dd73c769b3e7ac62bd4c0b98242b62d080e0 Mon Sep 17 00:00:00 2001 From: Tom Tromey Date: Fri, 4 Jun 2021 16:00:33 -0600 Subject: Introduce make_unique_xstrndup This adds a new make_unique_xstrndup function, which is the "n" analogue of make_unique_xstrdup. It also updates a couple existing places to use this function. --- gdb/cli/cli-setshow.c | 7 +++---- gdb/parse.c | 3 ++- 2 files changed, 5 insertions(+), 5 deletions(-) (limited to 'gdb') diff --git a/gdb/cli/cli-setshow.c b/gdb/cli/cli-setshow.c index dcb50ca..18e2d4e 100644 --- a/gdb/cli/cli-setshow.c +++ b/gdb/cli/cli-setshow.c @@ -375,14 +375,13 @@ do_set_command (const char *arg, int from_tty, struct cmd_list_element *c) { /* Clear trailing whitespace of filename. */ const char *ptr = arg + strlen (arg) - 1; - char *copy; while (ptr >= arg && (*ptr == ' ' || *ptr == '\t')) ptr--; - copy = xstrndup (arg, ptr + 1 - arg); + gdb::unique_xmalloc_ptr copy + = make_unique_xstrndup (arg, ptr + 1 - arg); - val = tilde_expand (copy); - xfree (copy); + val = tilde_expand (copy.get ()); } else val = xstrdup (""); diff --git a/gdb/parse.c b/gdb/parse.c index b2f23eb..a76a6c1 100644 --- a/gdb/parse.c +++ b/gdb/parse.c @@ -199,7 +199,8 @@ parser_state::mark_completion_tag (enum type_code tag, const char *ptr, || tag == TYPE_CODE_STRUCT || tag == TYPE_CODE_ENUM); m_completion_state.expout_tag_completion_type = tag; - m_completion_state.expout_completion_name.reset (xstrndup (ptr, length)); + m_completion_state.expout_completion_name + = make_unique_xstrndup (ptr, length); } /* See parser-defs.h. */ -- cgit v1.1