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.
This commit is contained in:
@@ -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. */
|
||||
|
||||
@@ -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;
|
||||
|
||||
|
||||
Reference in New Issue
Block a user