diff --git a/libretro-common/file/file_extract.c b/libretro-common/file/file_extract.c index 3e408c4c02..761b518f2b 100644 --- a/libretro-common/file/file_extract.c +++ b/libretro-common/file/file_extract.c @@ -295,7 +295,7 @@ void *zlib_stream_new(void) return (z_stream*)calloc(1, sizeof(z_stream)); } -bool zlib_inflate_init(void *data) +bool zlib_inflate_init2(void *data) { z_stream *stream = (z_stream*)data; @@ -306,6 +306,17 @@ bool zlib_inflate_init(void *data) return true; } +bool zlib_inflate_init(void *data) +{ + z_stream *stream = (z_stream*)data; + + if (!stream) + return false; + if (inflateInit(stream) != Z_OK) + return false; + return true; +} + void zlib_stream_free(void *data) { z_stream *ret = (z_stream*)data; @@ -325,7 +336,7 @@ bool zlib_inflate_data_to_file_init( if (!(handle->stream = (z_stream*)zlib_stream_new())) goto error; - if (!(zlib_inflate_init(handle->stream))) + if (!(zlib_inflate_init2(handle->stream))) goto error; handle->data = (uint8_t*)malloc(size); diff --git a/libretro-common/formats/png/rpng_decode.c b/libretro-common/formats/png/rpng_decode.c index d3683e225a..f858817dbd 100644 --- a/libretro-common/formats/png/rpng_decode.c +++ b/libretro-common/formats/png/rpng_decode.c @@ -648,7 +648,7 @@ bool rpng_load_image_argb_process_init(struct rpng_t *rpng, if (rpng->ihdr.interlace == 1) /* To be sure. */ rpng->process.inflate_buf_size *= 2; - if (inflateInit(&rpng->process.stream) != Z_OK) + if (!zlib_inflate_init(&rpng->process.stream)) return false; rpng->process.inflate_buf = (uint8_t*)malloc(rpng->process.inflate_buf_size); diff --git a/libretro-common/include/file/file_extract.h b/libretro-common/include/file/file_extract.h index 75ddf427fd..8f8a5dc0b5 100644 --- a/libretro-common/include/file/file_extract.h +++ b/libretro-common/include/file/file_extract.h @@ -119,5 +119,7 @@ void zlib_stream_free(void *data); bool zlib_inflate_init(void *data); +bool zlib_inflate_init2(void *data); + #endif