Browse Source

Remove a ui-related memory leak

gdb_setup_readline makes new streams and assigns to the various stream
members of struct ui.  However, these assignments cause the previous
values to leak.  As far as I can, this code is simply unnecessary and
can be removed -- with the exception of the assignment to gdb_stdtarg,
which is not initialized anywhere else.
users/aburgess/try-mips-disasm-styling
Tom Tromey 4 years ago
parent
commit
b8043d2721
  1. 11
      gdb/event-top.c
  2. 1
      gdb/main.c

11
gdb/event-top.c

@ -1330,17 +1330,6 @@ gdb_setup_readline (int editing)
{
struct ui *ui = current_ui;
/* This function is a noop for the sync case. The assumption is
that the sync setup is ALL done in gdb_init, and we would only
mess it up here. The sync stuff should really go away over
time. */
if (!batch_silent)
gdb_stdout = new pager_file (new stdio_file (ui->outstream));
gdb_stderr = new stderr_file (ui->errstream);
gdb_stdlog = new timestamped_file (gdb_stderr);
gdb_stdtarg = gdb_stderr;
gdb_stdtargerr = gdb_stderr;
/* If the input stream is connected to a terminal, turn on editing.
However, that is only allowed on the main UI, as we can only have
one instance of readline. */

1
gdb/main.c

@ -676,6 +676,7 @@ captured_main_1 (struct captured_main_args *context)
main_ui = new ui (stdin, stdout, stderr);
current_ui = main_ui;
gdb_stdtarg = gdb_stderr;
gdb_stdtargerr = gdb_stderr;
gdb_stdtargin = gdb_stdin;

Loading…
Cancel
Save