From 166e300471464739cbc017c696b00f769b2c82f8 Mon Sep 17 00:00:00 2001 From: twinaphex Date: Tue, 4 Oct 2016 11:16:02 +0200 Subject: [PATCH] Plug more memor yleaks --- tasks/task_save.c | 8 +++++++- tasks/task_screenshot.c | 2 ++ 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/tasks/task_save.c b/tasks/task_save.c index 40a750e6ff..9f0c43dcb2 100644 --- a/tasks/task_save.c +++ b/tasks/task_save.c @@ -638,6 +638,8 @@ static void task_push_undo_save_state(const char *path, void *data, size_t size) error: if (data) free(data); + if (state) + free(state); if (task) free(task); } @@ -963,7 +965,7 @@ error: **/ static void task_push_save_state(const char *path, void *data, size_t size) { - retro_task_t *task = (retro_task_t*)calloc(1, sizeof(*task)); + retro_task_t *task = (retro_task_t*)calloc(1, sizeof(*task)); save_task_state_t *state = (save_task_state_t*)calloc(1, sizeof(*state)); if (!task || !state) @@ -985,6 +987,8 @@ static void task_push_save_state(const char *path, void *data, size_t size) error: if (data) free(data); + if (state) + free(state); if (task) free(task); } @@ -1046,6 +1050,8 @@ static void task_push_load_and_save_state(const char *path, void *data, size_t s error: if (data) free(data); + if (state) + free(state); if (task) free(task); } diff --git a/tasks/task_screenshot.c b/tasks/task_screenshot.c index 386e066e6d..8709325ed2 100644 --- a/tasks/task_screenshot.c +++ b/tasks/task_screenshot.c @@ -195,6 +195,8 @@ static bool screenshot_dump( { if (task) free(task); + if (state) + free(state); return false; } #endif