diff options
Diffstat (limited to 'src')
| -rw-r--r-- | src/image.c | 17 |
1 files changed, 10 insertions, 7 deletions
diff --git a/src/image.c b/src/image.c index 3b3d1fc080a..f56d02bf198 100644 --- a/src/image.c +++ b/src/image.c | |||
| @@ -9249,11 +9249,13 @@ gif_load (struct frame *f, struct image *img) | |||
| 9249 | return true; | 9249 | return true; |
| 9250 | 9250 | ||
| 9251 | gif_error: | 9251 | gif_error: |
| 9252 | if (!cache) | 9252 | if (pixmap) |
| 9253 | xfree (pixmap); | ||
| 9254 | gif_close (gif, NULL); | ||
| 9255 | if (cache) | ||
| 9253 | { | 9256 | { |
| 9254 | if (pixmap) | 9257 | cache->handle = NULL; |
| 9255 | xfree (pixmap); | 9258 | cache->temp = NULL; |
| 9256 | gif_close (gif, NULL); | ||
| 9257 | } | 9259 | } |
| 9258 | return false; | 9260 | return false; |
| 9259 | } | 9261 | } |
| @@ -9501,9 +9503,6 @@ webp_load (struct frame *f, struct image *img) | |||
| 9501 | if (features.has_animation) | 9503 | if (features.has_animation) |
| 9502 | { | 9504 | { |
| 9503 | /* Animated image. */ | 9505 | /* Animated image. */ |
| 9504 | WebPData webp_data; | ||
| 9505 | webp_data.bytes = contents; | ||
| 9506 | webp_data.size = size; | ||
| 9507 | int timestamp; | 9506 | int timestamp; |
| 9508 | 9507 | ||
| 9509 | struct anim_cache* cache = anim_get_animation_cache (img->spec); | 9508 | struct anim_cache* cache = anim_get_animation_cache (img->spec); |
| @@ -9524,6 +9523,10 @@ webp_load (struct frame *f, struct image *img) | |||
| 9524 | if (cache->handle) | 9523 | if (cache->handle) |
| 9525 | WebPAnimDecoderDelete (cache->handle); | 9524 | WebPAnimDecoderDelete (cache->handle); |
| 9526 | 9525 | ||
| 9526 | WebPData webp_data; | ||
| 9527 | webp_data.bytes = contents; | ||
| 9528 | webp_data.size = size; | ||
| 9529 | |||
| 9527 | /* Get the width/height of the total image. */ | 9530 | /* Get the width/height of the total image. */ |
| 9528 | WebPDemuxer* demux = WebPDemux (&webp_data); | 9531 | WebPDemuxer* demux = WebPDemux (&webp_data); |
| 9529 | cache->width = width = WebPDemuxGetI (demux, WEBP_FF_CANVAS_WIDTH); | 9532 | cache->width = width = WebPDemuxGetI (demux, WEBP_FF_CANVAS_WIDTH); |