diff --git a/libretro-common/file/file_archive.c b/libretro-common/file/file_archive.c index ecf5bac3a7..611f99c650 100644 --- a/libretro-common/file/file_archive.c +++ b/libretro-common/file/file_archive.c @@ -404,14 +404,6 @@ static int file_archive_parse_file_init(zlib_transfer_t *state, return 0; } -void zlib_deflate_init(void *data, int level) -{ - z_stream *stream = (z_stream*)data; - - if (stream) - deflateInit(stream, level); -} - uint32_t file_archive_crc32_calculate( uint32_t crc, const uint8_t *data, diff --git a/libretro-common/file/file_archive_zlib.c b/libretro-common/file/file_archive_zlib.c index e8d157ed0a..5732ecd09e 100644 --- a/libretro-common/file/file_archive_zlib.c +++ b/libretro-common/file/file_archive_zlib.c @@ -187,6 +187,14 @@ static int zlib_stream_decompress_data_to_file_iterate(void *data) return 0; } +static void zlib_stream_compress_init(void *data, int level) +{ + z_stream *stream = (z_stream*)data; + + if (stream) + deflateInit(stream, level); +} + const struct zlib_file_backend zlib_backend = { zlib_stream_new, zlib_stream_free, @@ -198,6 +206,7 @@ const struct zlib_file_backend zlib_backend = { zlib_stream_decompress_init, zlib_stream_decompress_data_to_file_init, zlib_stream_decompress_data_to_file_iterate, + zlib_stream_compress_init, zlib_stream_compress_free, zlib_stream_compress_data_to_file, "zlib" diff --git a/libretro-common/formats/png/rpng_encode.c b/libretro-common/formats/png/rpng_encode.c index 4a74eb5c0e..e842a99719 100644 --- a/libretro-common/formats/png/rpng_encode.c +++ b/libretro-common/formats/png/rpng_encode.c @@ -335,7 +335,7 @@ static bool rpng_save_image(const char *path, encode_buf, deflate_buf + 8); - zlib_deflate_init(stream, 9); + stream_backend->stream_compress_init(stream, 9); if (stream_backend->stream_compress_data_to_file(stream) != 1) { diff --git a/libretro-common/include/file/file_archive.h b/libretro-common/include/file/file_archive.h index fe23385ce9..7e199919ad 100644 --- a/libretro-common/include/file/file_archive.h +++ b/libretro-common/include/file/file_archive.h @@ -58,7 +58,8 @@ struct zlib_file_backend bool (*stream_decompress_init)(void *); bool (*stream_decompress_data_to_file_init)( zlib_file_handle_t *, const uint8_t *, uint32_t, uint32_t); - int (*stream_decompress_data_to_file_iterate)(void *data); + int (*stream_decompress_data_to_file_iterate)(void *); + void (*stream_compress_init)(void *, int); void (*stream_compress_free)(void *); int (*stream_compress_data_to_file)(void *); const char *ident;