gdb: make saved_filename an std::string
authorSimon Marchi <simon.marchi@polymtl.ca>
Thu, 2 Dec 2021 19:53:06 +0000 (14:53 -0500)
committerSimon Marchi <simon.marchi@polymtl.ca>
Fri, 3 Dec 2021 13:24:11 +0000 (08:24 -0500)
Make this variable an std::string, avoiding manual memory management.

Change-Id: Ie7a8d7381449ab9c4dfc4cb8b99e63b9ffa8f947

gdb/cli/cli-logging.c

index 82be849b086ddfa6e570da7fdf97a4b922fc653a..124d15c60cfc7edea8ca582141abb5908e72c2d1 100644 (file)
@@ -24,7 +24,7 @@
 #include "cli/cli-style.h"
 #include "cli/cli-decode.h"
 
-static char *saved_filename;
+static std::string saved_filename;
 
 static std::string logging_filename = "gdb.txt";
 static void
@@ -40,9 +40,9 @@ static bool logging_overwrite;
 static void
 maybe_warn_already_logging ()
 {
-  if (saved_filename)
+  if (!saved_filename.empty ())
     warning (_("Currently logging to %s.  Turn the logging off and on to "
-              "make the new setting effective."), saved_filename);
+              "make the new setting effective."), saved_filename.c_str ());
 }
 
 static void
@@ -95,10 +95,10 @@ pop_output_files (void)
 static void
 handle_redirections (int from_tty)
 {
-  if (saved_filename != NULL)
+  if (!saved_filename.empty ())
     {
       fprintf_unfiltered (gdb_stdout, "Already logging to %s.\n",
-                         saved_filename);
+                         saved_filename.c_str ());
       return;
     }
 
@@ -124,7 +124,7 @@ handle_redirections (int from_tty)
                            logging_filename.c_str ());
     }
 
-  saved_filename = xstrdup (logging_filename.c_str ());
+  saved_filename = logging_filename;
 
   /* Let the interpreter do anything it needs.  */
   current_interp_set_logging (std::move (log), logging_redirect,
@@ -154,14 +154,14 @@ set_logging_on (const char *args, int from_tty)
 static void 
 set_logging_off (const char *args, int from_tty)
 {
-  if (saved_filename == NULL)
+  if (saved_filename.empty ())
     return;
 
   pop_output_files ();
   if (from_tty)
-    fprintf_unfiltered (gdb_stdout, "Done logging to %s.\n", saved_filename);
-  xfree (saved_filename);
-  saved_filename = NULL;
+    fprintf_unfiltered (gdb_stdout, "Done logging to %s.\n",
+                       saved_filename.c_str ());
+  saved_filename.clear ();
 }
 
 static bool logging_enabled;