Remove cleanups from cp-support.c
authorTom Tromey <tom@tromey.com>
Thu, 28 Sep 2017 02:46:18 +0000 (20:46 -0600)
committerTom Tromey <tom@tromey.com>
Sat, 30 Sep 2017 02:46:44 +0000 (20:46 -0600)
This removes some cleanups from cp-support.c, using std::string.

gdb/ChangeLog
2017-09-29  Tom Tromey  <tom@tromey.com>

* cp-support.c (gdb_demangle): Use std::string.

gdb/ChangeLog
gdb/cp-support.c

index 896c9fe..1fadba2 100644 (file)
@@ -1,5 +1,9 @@
 2017-09-29  Tom Tromey  <tom@tromey.com>
 
+       * cp-support.c (gdb_demangle): Use std::string.
+
+2017-09-29  Tom Tromey  <tom@tromey.com>
+
        * stack.c (parse_frame_specification): Use std::string
        (info_frame_command): Use gdb::unique_xmalloc_ptr.
 
index 6b5f2a3..d88bdaa 100644 (file)
@@ -1546,17 +1546,14 @@ gdb_demangle (const char *name, int options)
 
          if (!error_reported)
            {
-             char *short_msg, *long_msg;
-             struct cleanup *back_to;
+             std::string short_msg
+               = string_printf (_("unable to demangle '%s' "
+                                  "(demangler failed with signal %d)"),
+                                name, crash_signal);
 
-             short_msg = xstrprintf (_("unable to demangle '%s' "
-                                     "(demangler failed with signal %d)"),
-                                   name, crash_signal);
-             back_to = make_cleanup (xfree, short_msg);
-
-             long_msg = xstrprintf ("%s:%d: %s: %s", __FILE__, __LINE__,
-                                   "demangler-warning", short_msg);
-             make_cleanup (xfree, long_msg);
+             std::string long_msg
+               = string_printf ("%s:%d: %s: %s", __FILE__, __LINE__,
+                                "demangler-warning", short_msg.c_str ());
 
              target_terminal::scoped_restore_terminal_state term_state;
              target_terminal::ours_for_output ();
@@ -1565,13 +1562,11 @@ gdb_demangle (const char *name, int options)
              if (core_dump_allowed)
                fprintf_unfiltered (gdb_stderr,
                                    _("%s\nAttempting to dump core.\n"),
-                                   long_msg);
+                                   long_msg.c_str ());
              else
-               warn_cant_dump_core (long_msg);
-
-             demangler_warning (__FILE__, __LINE__, "%s", short_msg);
+               warn_cant_dump_core (long_msg.c_str ());
 
-             do_cleanups (back_to);
+             demangler_warning (__FILE__, __LINE__, "%s", short_msg.c_str ());
 
              error_reported = 1;
            }