diff --git a/xC.c b/xC.c index fb3cf99..d204ff1 100644 --- a/xC.c +++ b/xC.c @@ -653,10 +653,15 @@ input_rl_buffer_destroy (void *input, input_buffer_t input_buffer) HISTORY_STATE *state = history_get_history_state (); history_set_history_state (buffer->history); + + // TODO: Actually figure out why these cause crashes later. +#if RL_READLINE_VERSION <= 0x0802 rl_clear_history (); // rl_clear_history just removes history entries, // we have to reclaim memory for their actual container ourselves free (buffer->history->entries); +#endif + free (buffer->history); buffer->history = NULL;