From 093b00942254aa88107d826df048070482b1f8a5 Mon Sep 17 00:00:00 2001 From: Sebastien Ronsse Date: Thu, 26 May 2016 14:32:25 +1000 Subject: [PATCH] task image: Fix memory leak occurring for images loading non-progressively --- tasks/task_image.c | 18 +++++++----------- 1 file changed, 7 insertions(+), 11 deletions(-) diff --git a/tasks/task_image.c b/tasks/task_image.c index d7fbd28e63..ad858c89bf 100644 --- a/tasks/task_image.c +++ b/tasks/task_image.c @@ -127,21 +127,17 @@ static int cb_image_menu_generic(nbio_handle_t *nbio) { unsigned width = 0, height = 0; nbio_image_handle_t *image = (nbio_image_handle_t*)nbio->data; + int retval; + if (!nbio || !image) return -1; - switch (task_image_process(nbio, - &width, &height)) - { - case IMAGE_PROCESS_ERROR: - case IMAGE_PROCESS_ERROR_END: - return -1; - default: - break; - } + retval = task_image_process(nbio, &width, &height); + if ((retval == IMAGE_PROCESS_ERROR) || (retval == IMAGE_PROCESS_ERROR_END)) + return -1; - image->is_blocking_on_processing = true; - image->is_finished = false; + image->is_blocking_on_processing = (retval != IMAGE_PROCESS_END); + image->is_finished = (retval == IMAGE_PROCESS_END); return 0; }