diff options
| -rw-r--r-- | fastiv-io.c | 6 | ||||
| -rw-r--r-- | tools/jpeginfo.c | 3 | 
2 files changed, 6 insertions, 3 deletions
diff --git a/fastiv-io.c b/fastiv-io.c index 99a48e5..f99c385 100644 --- a/fastiv-io.c +++ b/fastiv-io.c @@ -1283,19 +1283,22 @@ open_libwebp(const gchar *data, gsize len, const gchar *path, GError **error)  		goto fail;  	} +	// Releasing the demux chunk iterator is actually a no-op. +	WebPChunkIterator chunk_iter = {};  	uint32_t flags = WebPDemuxGetI(demux, WEBP_FF_FORMAT_FLAGS); -	WebPChunkIterator chunk_iter;  	if ((flags & ICCP_FLAG) &&  		WebPDemuxGetChunk(demux, "ICCP", 1, &chunk_iter)) {  		cairo_surface_set_user_data(result, &fastiv_io_key_icc,  			g_bytes_new(chunk_iter.chunk.bytes, chunk_iter.chunk.size),  			(cairo_destroy_func_t) g_bytes_unref); +		WebPDemuxReleaseChunkIterator(&chunk_iter);  	}  	if ((flags & EXIF_FLAG) &&  		WebPDemuxGetChunk(demux, "EXIF", 1, &chunk_iter)) {  		cairo_surface_set_user_data(result, &fastiv_io_key_exif,  			g_bytes_new(chunk_iter.chunk.bytes, chunk_iter.chunk.size),  			(cairo_destroy_func_t) g_bytes_unref); +		WebPDemuxReleaseChunkIterator(&chunk_iter);  	}  	if (flags & ANIMATION_FLAG) {  		cairo_surface_set_user_data(result, &fastiv_io_key_loops, @@ -1303,7 +1306,6 @@ open_libwebp(const gchar *data, gsize len, const gchar *path, GError **error)  			NULL);  	} -	WebPDemuxReleaseChunkIterator(&chunk_iter);  	WebPDemuxDelete(demux);  fail: diff --git a/tools/jpeginfo.c b/tools/jpeginfo.c index 7836926..d3d9b59 100644 --- a/tools/jpeginfo.c +++ b/tools/jpeginfo.c @@ -20,9 +20,10 @@  #include <jv.h>  #include <errno.h> +#include <stdbool.h> +#include <stdio.h>  #include <stdlib.h>  #include <string.h> -#include <stdbool.h>  // --- ICC profiles ------------------------------------------------------------  // v2 https://www.color.org/ICC_Minor_Revision_for_Web.pdf  | 
