[PATCH] Remove an xfree from add_path

Tom Tromey tom@tromey.com
Tue Dec 7 04:42:45 GMT 2021


This removes a temporary \0 assignment and an xfree from add_path,
replacing it with a simpler use of std::string.
---
 gdb/source.c | 13 ++++---------
 1 file changed, 4 insertions(+), 9 deletions(-)

diff --git a/gdb/source.c b/gdb/source.c
index 3810af83042..d91389e28b7 100644
--- a/gdb/source.c
+++ b/gdb/source.c
@@ -660,15 +660,10 @@ add_path (const char *dirname, char **which_path, int parse_separators)
 	   more.  */
 	if (prefix)
 	  {
-	    char *temp, c;
-
-	    c = old[prefix];
-	    old[prefix] = '\0';
-	    temp = concat (old, tinybuf, name, (char *)NULL);
-	    old[prefix] = c;
-	    *which_path = concat (temp, "", &old[prefix], (char *) NULL);
-	    prefix = strlen (temp);
-	    xfree (temp);
+	    std::string temp (old, prefix);
+	    *which_path = concat (temp.c_str (), tinybuf, name, &old[prefix],
+				  (char *) nullptr);
+	    prefix = temp.length ();
 	  }
 	else
 	  {
-- 
2.31.1



More information about the Gdb-patches mailing list