This is the mail archive of the
gdb-cvs@sourceware.org
mailing list for the GDB project.
[binutils-gdb] Remove cleanups from cp-support.c
- From: Tom Tromey <tromey at sourceware dot org>
- To: gdb-cvs at sourceware dot org
- Date: 30 Sep 2017 02:59:17 -0000
- Subject: [binutils-gdb] Remove cleanups from cp-support.c
https://sourceware.org/git/gitweb.cgi?p=binutils-gdb.git;h=6ad94bc76615933a234a219368f1b9af2a64d746
commit 6ad94bc76615933a234a219368f1b9af2a64d746
Author: Tom Tromey <tom@tromey.com>
Date: Wed Sep 27 20:46:18 2017 -0600
Remove cleanups from cp-support.c
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.
Diff:
---
gdb/ChangeLog | 4 ++++
gdb/cp-support.c | 25 ++++++++++---------------
2 files changed, 14 insertions(+), 15 deletions(-)
diff --git a/gdb/ChangeLog b/gdb/ChangeLog
index 896c9fe..1fadba2 100644
--- a/gdb/ChangeLog
+++ b/gdb/ChangeLog
@@ -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.
diff --git a/gdb/cp-support.c b/gdb/cp-support.c
index 6b5f2a3..d88bdaa 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;
}