mirror of
git://git.sv.gnu.org/emacs.git
synced 2026-02-17 10:27:41 +00:00
Release resources in gif_load on errors
* src/image.c (webp_load): Clean up code slightly. (gif_load): Really release resources on GIF parsing errors.
This commit is contained in:
parent
3de2462da7
commit
25a28ed4f7
1 changed files with 10 additions and 7 deletions
17
src/image.c
17
src/image.c
|
|
@ -9249,11 +9249,13 @@ gif_load (struct frame *f, struct image *img)
|
|||
return true;
|
||||
|
||||
gif_error:
|
||||
if (!cache)
|
||||
if (pixmap)
|
||||
xfree (pixmap);
|
||||
gif_close (gif, NULL);
|
||||
if (cache)
|
||||
{
|
||||
if (pixmap)
|
||||
xfree (pixmap);
|
||||
gif_close (gif, NULL);
|
||||
cache->handle = NULL;
|
||||
cache->temp = NULL;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
|
@ -9501,9 +9503,6 @@ webp_load (struct frame *f, struct image *img)
|
|||
if (features.has_animation)
|
||||
{
|
||||
/* Animated image. */
|
||||
WebPData webp_data;
|
||||
webp_data.bytes = contents;
|
||||
webp_data.size = size;
|
||||
int timestamp;
|
||||
|
||||
struct anim_cache* cache = anim_get_animation_cache (img->spec);
|
||||
|
|
@ -9524,6 +9523,10 @@ webp_load (struct frame *f, struct image *img)
|
|||
if (cache->handle)
|
||||
WebPAnimDecoderDelete (cache->handle);
|
||||
|
||||
WebPData webp_data;
|
||||
webp_data.bytes = contents;
|
||||
webp_data.size = size;
|
||||
|
||||
/* Get the width/height of the total image. */
|
||||
WebPDemuxer* demux = WebPDemux (&webp_data);
|
||||
cache->width = width = WebPDemuxGetI (demux, WEBP_FF_CANVAS_WIDTH);
|
||||
|
|
|
|||
Loading…
Reference in a new issue