From b8043d27217ff89abba733476cb71c3656f5722a Mon Sep 17 00:00:00 2001 From: Tom Tromey Date: Thu, 11 Aug 2022 13:16:46 -0600 Subject: [PATCH] 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. --- gdb/event-top.c | 11 ----------- gdb/main.c | 1 + 2 files changed, 1 insertion(+), 11 deletions(-) diff --git a/gdb/event-top.c b/gdb/event-top.c index a5f24f6a902..1b522a77d79 100644 --- a/gdb/event-top.c +++ b/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. */ diff --git a/gdb/main.c b/gdb/main.c index 91fa1966738..8d2666ecc95 100644 --- a/gdb/main.c +++ b/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; -- 2.30.2