degesch: reclaim more memory with Readline
This commit is contained in:
parent
b5d472f0df
commit
fdff5f8c72
10
degesch.c
10
degesch.c
@ -397,6 +397,9 @@ input_destroy_buffer (struct input *self, struct input_buffer *buffer)
|
|||||||
|
|
||||||
history_set_history_state (buffer->history);
|
history_set_history_state (buffer->history);
|
||||||
rl_clear_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);
|
free (buffer->history);
|
||||||
buffer->history = NULL;
|
buffer->history = NULL;
|
||||||
|
|
||||||
@ -1338,9 +1341,14 @@ app_context_free (struct app_context *self)
|
|||||||
for (size_t i = 0; i < ATTR_COUNT; i++)
|
for (size_t i = 0; i < ATTR_COUNT; i++)
|
||||||
free (self->attrs[i]);
|
free (self->attrs[i]);
|
||||||
|
|
||||||
// FIXME: this doesn't free the history state
|
|
||||||
LIST_FOR_EACH (struct buffer, iter, self->buffers)
|
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);
|
buffer_destroy (iter);
|
||||||
|
}
|
||||||
str_map_free (&self->buffers_by_name);
|
str_map_free (&self->buffers_by_name);
|
||||||
|
|
||||||
str_map_free (&self->servers);
|
str_map_free (&self->servers);
|
||||||
|
Loading…
Reference in New Issue
Block a user