aboutsummaryrefslogtreecommitdiff
path: root/gdb/utils.c
diff options
context:
space:
mode:
authorTom Tromey <tom@tromey.com>2017-08-13 23:47:01 -0600
committerTom Tromey <tom@tromey.com>2017-09-03 13:03:09 -0600
commit18e9961f02b326923553f34682f4dcca0f25702e (patch)
treedb2c3525e338e8d12be7a24e41a8710f1b7b1a19 /gdb/utils.c
parent453437863c82afc8ed5bfcb937a2e297957fc212 (diff)
downloadgdb-18e9961f02b326923553f34682f4dcca0f25702e.zip
gdb-18e9961f02b326923553f34682f4dcca0f25702e.tar.gz
gdb-18e9961f02b326923553f34682f4dcca0f25702e.tar.bz2
Return std::string from perror_string
Change perror_string to return a std::string, removing a cleanup in the process. ChangeLog 2017-09-03 Tom Tromey <tom@tromey.com> * utils.c (perror_string): Return a std::string. (throw_perror_with_name, perror_warning_with_name): Update.
Diffstat (limited to 'gdb/utils.c')
-rw-r--r--gdb/utils.c28
1 files changed, 7 insertions, 21 deletions
diff --git a/gdb/utils.c b/gdb/utils.c
index 3ca29b7..af50cf0 100644
--- a/gdb/utils.c
+++ b/gdb/utils.c
@@ -751,23 +751,15 @@ add_internal_problem_command (struct internal_problem *problem)
}
/* Return a newly allocated string, containing the PREFIX followed
- by the system error message for errno (separated by a colon).
+ by the system error message for errno (separated by a colon). */
- The result must be deallocated after use. */
-
-static char *
+static std::string
perror_string (const char *prefix)
{
char *err;
- char *combined;
err = safe_strerror (errno);
- combined = (char *) xmalloc (strlen (err) + strlen (prefix) + 3);
- strcpy (combined, prefix);
- strcat (combined, ": ");
- strcat (combined, err);
-
- return combined;
+ return std::string (prefix) + ": " + err;
}
/* Print the system error message for errno, and also mention STRING
@@ -777,10 +769,7 @@ perror_string (const char *prefix)
void
throw_perror_with_name (enum errors errcode, const char *string)
{
- char *combined;
-
- combined = perror_string (string);
- make_cleanup (xfree, combined);
+ std::string combined = perror_string (string);
/* I understand setting these is a matter of taste. Still, some people
may clear errno but not know about bfd_error. Doing this here is not
@@ -788,7 +777,7 @@ throw_perror_with_name (enum errors errcode, const char *string)
bfd_set_error (bfd_error_no_error);
errno = 0;
- throw_error (errcode, _("%s."), combined);
+ throw_error (errcode, _("%s."), combined.c_str ());
}
/* See throw_perror_with_name, ERRCODE defaults here to GENERIC_ERROR. */
@@ -805,11 +794,8 @@ perror_with_name (const char *string)
void
perror_warning_with_name (const char *string)
{
- char *combined;
-
- combined = perror_string (string);
- warning (_("%s"), combined);
- xfree (combined);
+ std::string combined = perror_string (string);
+ warning (_("%s"), combined.c_str ());
}
/* Print the system error message for ERRCODE, and also mention STRING