From fdff5f8c72552e8f677636e4c119616a684b2344 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?P=C5=99emysl=20Janouch?= Date: Sun, 28 Jun 2015 23:00:46 +0200 Subject: [PATCH] degesch: reclaim more memory with Readline --- degesch.c | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/degesch.c b/degesch.c index cbb20d3..dc9427e 100644 --- a/degesch.c +++ b/degesch.c @@ -397,6 +397,9 @@ input_destroy_buffer (struct input *self, struct input_buffer *buffer) history_set_history_state (buffer->history); rl_clear_history (); + // rl_clear_history just removes history entries, + // we have to reclaim memory for their actual container ourselves + free (buffer->history->entries); free (buffer->history); buffer->history = NULL; @@ -1338,9 +1341,14 @@ app_context_free (struct app_context *self) for (size_t i = 0; i < ATTR_COUNT; i++) free (self->attrs[i]); - // FIXME: this doesn't free the history state LIST_FOR_EACH (struct buffer, iter, self->buffers) + { +#ifdef HAVE_READLINE + input_destroy_buffer (&self->input, iter->input_data); + iter->input_data = NULL; +#endif // HAVE_READLINE buffer_destroy (iter); + } str_map_free (&self->buffers_by_name); str_map_free (&self->servers);