From 064c5ffc3a42ef03bde2a99d3513162af31e1992 Mon Sep 17 00:00:00 2001 From: twinaphex Date: Sun, 24 Jan 2016 20:01:35 +0100 Subject: [PATCH] Move zlib_stream_free to file_archive_zlib.c --- libretro-common/file/file_archive.c | 11 ++--------- libretro-common/file/file_archive_zlib.c | 8 ++++++++ libretro-common/formats/png/rpng.c | 6 +++--- libretro-common/formats/png/rpng_encode.c | 2 +- libretro-common/include/file/file_archive.h | 2 +- 5 files changed, 15 insertions(+), 14 deletions(-) diff --git a/libretro-common/file/file_archive.c b/libretro-common/file/file_archive.c index d9d1b5e523..bbed38f73b 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_free(void *data) -{ - z_stream *ret = (z_stream*)data; - if (ret) - inflateEnd(ret); -} - void zlib_stream_deflate_free(void *data) { z_stream *ret = (z_stream*)data; @@ -487,7 +480,7 @@ bool file_archive_inflate_data_to_file_init( error: if (handle->stream) - zlib_stream_free(handle->stream); + handle->backend->stream_free(handle->stream); free(handle->stream); if (handle->data) free(handle->data); @@ -564,7 +557,7 @@ int file_archive_inflate_data_to_file( { if (handle) { - zlib_stream_free(handle->stream); + handle->backend->stream_free(handle->stream); free(handle->stream); } diff --git a/libretro-common/file/file_archive_zlib.c b/libretro-common/file/file_archive_zlib.c index 6109d0efd3..d88b11f4a1 100644 --- a/libretro-common/file/file_archive_zlib.c +++ b/libretro-common/file/file_archive_zlib.c @@ -31,7 +31,15 @@ static void *zlib_stream_new(void) return (z_stream*)calloc(1, sizeof(z_stream)); } +static void zlib_stream_free(void *data) +{ + z_stream *ret = (z_stream*)data; + if (ret) + inflateEnd(ret); +} + const struct zlib_file_backend zlib_backend = { zlib_stream_new, + zlib_stream_free, "zlib" }; diff --git a/libretro-common/formats/png/rpng.c b/libretro-common/formats/png/rpng.c index 4e7f2bd90f..67c40191cc 100644 --- a/libretro-common/formats/png/rpng.c +++ b/libretro-common/formats/png/rpng.c @@ -714,7 +714,7 @@ static int rpng_load_image_argb_process_inflate_init(rpng_t *rpng, return 0; end: - zlib_stream_free(rpng->process.stream); + rpng->process.stream_backend->stream_free(rpng->process.stream); *width = rpng->ihdr.width; *height = rpng->ihdr.height; @@ -741,7 +741,7 @@ end: return 1; error: - zlib_stream_free(rpng->process.stream); + rpng->process.stream_backend->stream_free(rpng->process.stream); false_end: rpng->process.inflate_initialized = false; @@ -985,7 +985,7 @@ void rpng_nbio_load_image_free(rpng_t *rpng) free(rpng->process.inflate_buf); if (rpng->process.stream) { - zlib_stream_free(rpng->process.stream); + rpng->process.stream_backend->stream_free(rpng->process.stream); free(rpng->process.stream); } diff --git a/libretro-common/formats/png/rpng_encode.c b/libretro-common/formats/png/rpng_encode.c index 87dbdd6c92..edbead69fa 100644 --- a/libretro-common/formats/png/rpng_encode.c +++ b/libretro-common/formats/png/rpng_encode.c @@ -364,7 +364,7 @@ end: free(avg_filtered); free(paeth_filtered); - zlib_stream_free(stream); + stream_backend->stream_free(stream); return ret; } diff --git a/libretro-common/include/file/file_archive.h b/libretro-common/include/file/file_archive.h index 276a8a9c2d..06b2a597f3 100644 --- a/libretro-common/include/file/file_archive.h +++ b/libretro-common/include/file/file_archive.h @@ -40,6 +40,7 @@ enum zlib_transfer_type struct zlib_file_backend { void *(*stream_new)(void); + void (*stream_free)(void *); const char *ident; }; @@ -155,7 +156,6 @@ bool file_archive_perform_mode(const char *name, const char *valid_exts, struct string_list *compressed_file_list_new(const char *filename, const char* ext); -void zlib_stream_free(void *data); void zlib_deflate_init(void *data, int level);