From 2a5e74ecb0b17c72e846ef464bdd81281f831524 Mon Sep 17 00:00:00 2001 From: twinaphex Date: Tue, 27 Dec 2016 15:14:27 +0100 Subject: [PATCH] Cleanup autosave_free/autosave_deinit --- tasks/task_save.c | 21 +++++++++++++-------- 1 file changed, 13 insertions(+), 8 deletions(-) diff --git a/tasks/task_save.c b/tasks/task_save.c index 90f164a14a..63bba32625 100644 --- a/tasks/task_save.c +++ b/tasks/task_save.c @@ -246,9 +246,6 @@ error: **/ static void autosave_free(autosave_t *handle) { - if (!handle) - return; - slock_lock(handle->cond_lock); handle->quit = true; slock_unlock(handle->cond_lock); @@ -259,8 +256,9 @@ static void autosave_free(autosave_t *handle) slock_free(handle->cond_lock); scond_free(handle->cond); - free(handle->buffer); - free(handle); + if (handle->buffer) + free(handle->buffer); + handle->buffer = NULL; } @@ -318,10 +316,17 @@ void autosave_deinit(void) unsigned i; for (i = 0; i < autosave_state.num; i++) - autosave_free(autosave_state.list[i]); + { + autosave_t *handle = autosave_state.list[i]; + if (handle) + { + autosave_free(handle); + free(autosave_state.list[i]); + autosave_state.list[i] = NULL; + } + } - if (autosave_state.list) - free(autosave_state.list); + free(autosave_state.list); autosave_state.list = NULL; autosave_state.num = 0;