From 65f80aa5e0f2087722199b62b60b1aa86648a5b9 Mon Sep 17 00:00:00 2001 From: twinaphex Date: Sat, 14 Mar 2015 03:22:41 +0100 Subject: [PATCH] (RPNG) Fix rpng_test.c --- libretro-common/formats/png/rpng_test.c | 17 ++++++++++++++++- 1 file changed, 16 insertions(+), 1 deletion(-) diff --git a/libretro-common/formats/png/rpng_test.c b/libretro-common/formats/png/rpng_test.c index b5cc924342..b1939bb0d4 100644 --- a/libretro-common/formats/png/rpng_test.c +++ b/libretro-common/formats/png/rpng_test.c @@ -30,9 +30,18 @@ #include #endif +enum image_process_code +{ + IMAGE_PROCESS_ERROR = -2, + IMAGE_PROCESS_ERROR_END = -1, + IMAGE_PROCESS_NEXT = 0, + IMAGE_PROCESS_END = 1, +}; + static bool rpng_nbio_load_image_argb(const char *path, uint32_t **data, unsigned *width, unsigned *height) { + int retval; size_t file_len; bool ret = true; struct rpng_t *rpng = NULL; @@ -96,7 +105,13 @@ static bool rpng_nbio_load_image_argb(const char *path, uint32_t **data, goto end; } - rpng_nbio_load_image_argb_process(rpng, data, width, height); + do + { + retval = rpng_nbio_load_image_argb_process(rpng, data, width, height); + }while(retval == IMAGE_PROCESS_NEXT); + + if (retval == IMAGE_PROCESS_ERROR || retval == IMAGE_PROCESS_ERROR_END) + ret = false; end: if (handle)