aboutsummaryrefslogtreecommitdiff
path: root/gdb/expprint.c
diff options
context:
space:
mode:
authorTom Tromey <tom@tromey.com>2018-03-27 14:31:10 -0600
committerTom Tromey <tom@tromey.com>2018-03-30 13:22:58 -0600
commite83e4e24021acb4b095b1e8a45a51c2ea088a1ed (patch)
tree4740a6532e556fbb49a7de4234c2913796366212 /gdb/expprint.c
parent263db9a1f4105b76ddf00829d50430ea0a3bcba6 (diff)
downloadgdb-e83e4e24021acb4b095b1e8a45a51c2ea088a1ed.zip
gdb-e83e4e24021acb4b095b1e8a45a51c2ea088a1ed.tar.gz
gdb-e83e4e24021acb4b095b1e8a45a51c2ea088a1ed.tar.bz2
Change target_read_string to use unique_xmalloc_ptr
This changes the out parameter of target_read_string to be a unique_xmalloc_ptr. This avoids a cleanup and sets the stage for more cleanup removals. This patch also removes a seemingly needless alloca from print_subexp_standard. gdb/ChangeLog 2018-03-30 Tom Tromey <tom@tromey.com> * windows-nat.c (handle_output_debug_string, handle_exception): Update. * target.h (target_read_string): Update. * target.c (target_read_string): Change "string" to unique_xmalloc_ptr. * solib-svr4.c (open_symbol_file_object, svr4_read_so_list): Update. * solib-frv.c (frv_current_sos): Update. * solib-dsbt.c (dsbt_current_sos): Update. * solib-darwin.c (darwin_current_sos): Update. * linux-thread-db.c (inferior_has_bug): Update. * expprint.c (print_subexp_standard) <case OP_OBJC_MSGCALL>: Update. Remove alloca. * ada-lang.c (ada_main_name): Update.
Diffstat (limited to 'gdb/expprint.c')
-rw-r--r--gdb/expprint.c9
1 files changed, 3 insertions, 6 deletions
diff --git a/gdb/expprint.c b/gdb/expprint.c
index 9d1884f..c906904 100644
--- a/gdb/expprint.c
+++ b/gdb/expprint.c
@@ -240,7 +240,7 @@ print_subexp_standard (struct expression *exp, int *pos,
case OP_OBJC_MSGCALL:
{ /* Objective C message (method) call. */
- char *selector;
+ gdb::unique_xmalloc_ptr<char> selector;
(*pos) += 3;
nargs = longest_to_int (exp->elts[pc + 2].longconst);
@@ -256,8 +256,7 @@ print_subexp_standard (struct expression *exp, int *pos,
{
char *s, *nextS;
- s = (char *) alloca (strlen (selector) + 1);
- strcpy (s, selector);
+ s = selector.get ();
for (tem = 0; tem < nargs; tem++)
{
nextS = strchr (s, ':');
@@ -270,11 +269,9 @@ print_subexp_standard (struct expression *exp, int *pos,
}
else
{
- fprintf_unfiltered (stream, " %s", selector);
+ fprintf_unfiltered (stream, " %s", selector.get ());
}
fprintf_unfiltered (stream, "]");
- /* "selector" was malloc'd by target_read_string. Free it. */
- xfree (selector);
return;
}