[PATCH] gdb: Simplification in charset.c

Lukas Durfina ldurfina@tachyum.com
Thu Feb 20 12:10:00 GMT 2020


Simplification of the code by using std::string.
Explicit memory allocation and releasing is removed.

gdb/Changelog:
2020-02-20 Lukas Durfina <ldurfina@tachyum.com>

       * charset.c (find_charset_names): Simplify.
---
 gdb/ChangeLog |  4 ++++
 gdb/charset.c | 10 +++-------
 2 files changed, 7 insertions(+), 7 deletions(-)

diff --git a/gdb/ChangeLog b/gdb/ChangeLog
index e3f7e9f828..f5de45b992 100644
--- a/gdb/ChangeLog
+++ b/gdb/ChangeLog
@@ -1,3 +1,7 @@
+2020-02-20 Lukas Durfina <ldurfina@tachyum.com>
+
+	* charset.c (find_charset_names): Simplify.
+
 2020-02-19  Tom Tromey  <tom@tromey.com>
 
 	* symtab.c (general_symbol_info::compute_and_set_names): Use
diff --git a/gdb/charset.c b/gdb/charset.c
index 4e459c2b45..ffdc663f8b 100644
--- a/gdb/charset.c
+++ b/gdb/charset.c
@@ -804,7 +804,7 @@ find_charset_names (void)
   int fail = 1;
   int flags;
   gdb_environ iconv_env = gdb_environ::from_host_environ ();
-  char *iconv_program;
+  std::string iconv_program = "iconv";
 
   /* Older iconvs, e.g. 2.2.2, don't omit the intro text if stdout is
      not a tty.  We need to recognize it and ignore it.  This text is
@@ -818,13 +818,10 @@ find_charset_names (void)
   {
     std::string iconv_dir = relocate_gdb_directory (ICONV_BIN,
 						    ICONV_BIN_RELOCATABLE);
-    iconv_program
-      = concat (iconv_dir.c_str(), SLASH_STRING, "iconv", (char *) NULL);
+    iconv_program = iconv_dir + SLASH_STRING + "iconv";
   }
-#else
-  iconv_program = xstrdup ("iconv");
 #endif
-  args[0] = iconv_program;
+  args[0] = iconv_program.c_str();
   args[1] = "-l";
   args[2] = NULL;
   flags = PEX_STDERR_TO_STDOUT;
@@ -906,7 +903,6 @@ find_charset_names (void)
 
     }
 
-  xfree (iconv_program);
   pex_free (child);
 
   if (fail)
-- 
2.17.1



More information about the Gdb-patches mailing list