* infcmd.c (print_return_value): Plug memory leak; delete

ui_stream object.  Rename argument `structure_return' to
`struct_return'.
This commit is contained in:
Mark Kettenis 2004-01-25 21:00:18 +00:00
parent f941662f5e
commit bb472c1e07
2 changed files with 23 additions and 19 deletions

View File

@ -1,3 +1,9 @@
2004-01-25 Mark Kettenis <kettenis@gnu.org>
* infcmd.c (print_return_value): Plug memory leak; delete
ui_stream object. Rename argument `structure_return' to
`struct_return'.
2004-01-25 Mark Kettenis <kettenis@gnu.org>
* infcmd.c (print_return_value): Wrap long lines.

View File

@ -1050,22 +1050,16 @@ advance_command (char *arg, int from_tty)
/* Print the result of a function at the end of a 'finish' command. */
static void
print_return_value (int structure_return, struct type *value_type)
print_return_value (int struct_return, struct type *value_type)
{
struct cleanup *old_chain;
struct ui_stream *stb;
struct value *value;
static struct ui_stream *stb = NULL;
if (!structure_return)
if (!struct_return)
{
/* The return value can be found in the inferior's registers. */
value = register_value_being_returned (value_type, stop_registers);
stb = ui_out_stream_new (uiout);
ui_out_text (uiout, "Value returned is ");
ui_out_field_fmt (uiout, "gdb-result-var", "$%d",
record_latest_value (value));
ui_out_text (uiout, " = ");
value_print (value, stb->stream, 0, Val_no_prettyprint);
ui_out_field_stream (uiout, "return-value", stb);
ui_out_text (uiout, "\n");
}
/* FIXME: 2003-09-27: When returning from a nested inferior function
call, it's possible (with no help from the architecture vector)
@ -1110,15 +1104,19 @@ print_return_value (int structure_return, struct type *value_type)
EXTRACT_RETURN_VALUE (value_type, stop_registers,
VALUE_CONTENTS_RAW (value));
}
stb = ui_out_stream_new (uiout);
ui_out_text (uiout, "Value returned is ");
ui_out_field_fmt (uiout, "gdb-result-var", "$%d",
record_latest_value (value));
ui_out_text (uiout, " = ");
value_print (value, stb->stream, 0, Val_no_prettyprint);
ui_out_field_stream (uiout, "return-value", stb);
ui_out_text (uiout, "\n");
}
/* Print it. */
stb = ui_out_stream_new (uiout);
old_chain = make_cleanup_ui_out_stream_delete (stb);
ui_out_text (uiout, "Value returned is ");
ui_out_field_fmt (uiout, "gdb-result-var", "$%d",
record_latest_value (value));
ui_out_text (uiout, " = ");
value_print (value, stb->stream, 0, Val_no_prettyprint);
ui_out_field_stream (uiout, "return-value", stb);
ui_out_text (uiout, "\n");
do_cleanups (old_chain);
}
/* Stuff that needs to be done by the finish command after the target