From 61da0a8ca9f2a39042f7ef9af63a2dd48057c927 Mon Sep 17 00:00:00 2001 From: NRK Date: Mon, 22 Nov 2021 09:42:31 +0600 Subject: [PATCH] refactor: move shared code into a function --- image.c | 40 +++++++++++++++++++--------------------- 1 file changed, 19 insertions(+), 21 deletions(-) diff --git a/image.c b/image.c index 7bc5239..2cec163 100644 --- a/image.c +++ b/image.c @@ -117,6 +117,23 @@ void exif_auto_orientate(const fileinfo_t *file) } #endif +#if HAVE_LIBGIF || HAVE_LIBWEBP +static void img_multiframe_context_set(img_t *img) +{ + if (img->multi.cnt > 1) { + imlib_context_set_image(img->im); + imlib_free_image(); + img->im = img->multi.frames[0].im; + } else if (img->multi.cnt == 1) { + imlib_context_set_image(img->multi.frames[0].im); + imlib_free_image(); + img->multi.cnt = 0; + } + + imlib_context_set_image(img->im); +} +#endif + #if HAVE_LIBGIF static bool img_load_gif(img_t *img, const fileinfo_t *file) { @@ -280,17 +297,7 @@ static bool img_load_gif(img_t *img, const fileinfo_t *file) if (err && (file->flags & FF_WARN)) error(0, 0, "%s: Corrupted gif file", file->name); - if (img->multi.cnt > 1) { - imlib_context_set_image(img->im); - imlib_free_image(); - img->im = img->multi.frames[0].im; - } else if (img->multi.cnt == 1) { - imlib_context_set_image(img->multi.frames[0].im); - imlib_free_image(); - img->multi.cnt = 0; - } - - imlib_context_set_image(img->im); + img_multiframe_context_set(img); return !err; } @@ -373,16 +380,7 @@ static bool img_load_webp(img_t *img, const fileinfo_t *file) } WebPDemuxReleaseIterator(&iter); - if (img->multi.cnt > 1) { - imlib_context_set_image(img->im); - imlib_free_image(); - img->im = img->multi.frames[0].im; - } else if (img->multi.cnt == 1) { - imlib_context_set_image(img->multi.frames[0].im); - imlib_free_image(); - img->multi.cnt = 0; - } - imlib_context_set_image(img->im); + img_multiframe_context_set(img); fail: if (dec != NULL) WebPAnimDecoderDelete(dec);