diff options
| author | NRK <nrk@disroot.org> | 2021-11-22 09:42:31 +0600 | 
|---|---|---|
| committer | N-R-K <79544946+N-R-K@users.noreply.github.com> | 2021-12-12 17:58:17 +0600 | 
| commit | 61da0a8ca9f2a39042f7ef9af63a2dd48057c927 (patch) | |
| tree | 71579e72fc86dbaa4cb7a97f005534c43b8a93dc | |
| parent | b0b16f1d0ffa550a8358206de844c9cf13f94ada (diff) | |
refactor: move shared code into a function
| -rw-r--r-- | image.c | 40 | 
1 files changed, 19 insertions, 21 deletions
| @@ -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); | 
