diff --git a/libretro-common/file/file_archive.c b/libretro-common/file/file_archive.c index 0c0a278172..d0f852cea8 100644 --- a/libretro-common/file/file_archive.c +++ b/libretro-common/file/file_archive.c @@ -434,13 +434,6 @@ bool file_archive_inflate_init(void *data) return true; } -void zlib_stream_deflate_free(void *data) -{ - z_stream *ret = (z_stream*)data; - if (ret) - deflateEnd(ret); -} - bool file_archive_inflate_data_to_file_init( zlib_file_handle_t *handle, const uint8_t *cdata, uint32_t csize, uint32_t size) diff --git a/libretro-common/file/file_archive_zlib.c b/libretro-common/file/file_archive_zlib.c index c46d8823d4..198cff74c8 100644 --- a/libretro-common/file/file_archive_zlib.c +++ b/libretro-common/file/file_archive_zlib.c @@ -76,6 +76,13 @@ static void zlib_stream_decrement_total_out(void *data, unsigned subtraction) stream->total_out -= subtraction; } +static void zlib_stream_compress_free(void *data) +{ + z_stream *ret = (z_stream*)data; + if (ret) + deflateEnd(ret); +} + const struct zlib_file_backend zlib_backend = { zlib_stream_new, zlib_stream_free, @@ -83,5 +90,6 @@ const struct zlib_file_backend zlib_backend = { zlib_stream_get_avail_out, zlib_stream_get_total_out, zlib_stream_decrement_total_out, + zlib_stream_compress_free, "zlib" }; diff --git a/libretro-common/formats/png/rpng_encode.c b/libretro-common/formats/png/rpng_encode.c index fd604645e0..92e0826ab7 100644 --- a/libretro-common/formats/png/rpng_encode.c +++ b/libretro-common/formats/png/rpng_encode.c @@ -339,11 +339,11 @@ static bool rpng_save_image(const char *path, if (zlib_deflate_data_to_file(stream) != 1) { - zlib_stream_deflate_free(stream); + stream_backend->stream_compress_free(stream); GOTO_END_ERROR(); } - zlib_stream_deflate_free(stream); + stream_backend->stream_compress_free(stream); memcpy(deflate_buf + 4, "IDAT", 4); dword_write_be(deflate_buf + 0, stream_backend->stream_get_total_out(stream)); diff --git a/libretro-common/include/file/file_archive.h b/libretro-common/include/file/file_archive.h index 971fb42faf..3fe4eeb4f0 100644 --- a/libretro-common/include/file/file_archive.h +++ b/libretro-common/include/file/file_archive.h @@ -45,6 +45,7 @@ struct zlib_file_backend uint32_t (*stream_get_avail_out)(void*); uint64_t (*stream_get_total_out)(void*); void (*stream_decrement_total_out)(void *, unsigned); + void (*stream_compress_free)(void *); const char *ident; }; @@ -162,8 +163,6 @@ void zlib_deflate_init(void *data, int level); int zlib_deflate_data_to_file(void *data); -void zlib_stream_deflate_free(void *data); - bool file_archive_inflate_init(void *data); void zlib_set_stream(void *data,