This is the mail archive of the gdb-patches@sourceware.org mailing list for the GDB project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[RFA 06/10] Use std::string in do_set_command


Change do_set_command to use std::string, removing a cleanup and some
manual resizing code.

ChangeLog
2017-08-29  Tom Tromey  <tom@tromey.com>

	* cli/cli-setshow.c (do_set_command): Use std::string.
---
 gdb/ChangeLog         |  4 ++++
 gdb/cli/cli-setshow.c | 16 ++++------------
 2 files changed, 8 insertions(+), 12 deletions(-)

diff --git a/gdb/ChangeLog b/gdb/ChangeLog
index 1d9ff74..0cf0fe9 100644
--- a/gdb/ChangeLog
+++ b/gdb/ChangeLog
@@ -1,5 +1,9 @@
 2017-08-29  Tom Tromey  <tom@tromey.com>
 
+	* cli/cli-setshow.c (do_set_command): Use std::string.
+
+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>
diff --git a/gdb/cli/cli-setshow.c b/gdb/cli/cli-setshow.c
index fb0bd49..c6e5ebc 100644
--- a/gdb/cli/cli-setshow.c
+++ b/gdb/cli/cli-setshow.c
@@ -367,24 +367,16 @@ do_set_command (const char *arg, int from_tty, struct cmd_list_element *c)
 	   message.  */
 	if (arg == NULL)
 	  {
-	    char *msg;
-	    int msg_len = 0;
-
-	    for (i = 0; c->enums[i]; i++)
-	      msg_len += strlen (c->enums[i]) + 2;
-
-	    msg = (char *) xmalloc (msg_len);
-	    *msg = '\0';
-	    make_cleanup (xfree, msg);
+	    std::string msg;
 
 	    for (i = 0; c->enums[i]; i++)
 	      {
 		if (i != 0)
-		  strcat (msg, ", ");
-		strcat (msg, c->enums[i]);
+		  msg += ", ";
+		msg += c->enums[i];
 	      }
 	    error (_("Requires an argument. Valid arguments are %s."), 
-		   msg);
+		   msg.c_str ());
 	  }
 
 	p = strchr (arg, ' ');
-- 
2.9.4


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]