From 6ad94bc76615933a234a219368f1b9af2a64d746 Mon Sep 17 00:00:00 2001 From: Tom Tromey Date: Wed, 27 Sep 2017 20:46:18 -0600 Subject: [PATCH] Remove cleanups from cp-support.c This removes some cleanups from cp-support.c, using std::string. gdb/ChangeLog 2017-09-29 Tom Tromey * cp-support.c (gdb_demangle): Use std::string. --- gdb/ChangeLog | 4 ++++ gdb/cp-support.c | 25 ++++++++++--------------- 2 files changed, 14 insertions(+), 15 deletions(-) diff --git a/gdb/ChangeLog b/gdb/ChangeLog index 896c9fe24c7..1fadba2bbb6 100644 --- a/gdb/ChangeLog +++ b/gdb/ChangeLog @@ -1,3 +1,7 @@ +2017-09-29 Tom Tromey + + * cp-support.c (gdb_demangle): Use std::string. + 2017-09-29 Tom Tromey * stack.c (parse_frame_specification): Use std::string diff --git a/gdb/cp-support.c b/gdb/cp-support.c index 6b5f2a3c5b3..d88bdaa9251 100644 --- a/gdb/cp-support.c +++ b/gdb/cp-support.c @@ -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; } -- 2.30.2