diff options
author | Michael Drake <tlsa@netsurf-browser.org> | 2021-11-02 13:11:44 +0000 |
---|---|---|
committer | Michael Drake <tlsa@netsurf-browser.org> | 2021-11-02 13:37:13 +0000 |
commit | 811922e7a5c7de1a83a016ce76d0ea009b26d9fa (patch) | |
tree | cd857ee21930280b0b6dff86401854f0acd2917a | |
parent | e1c7bbf7fa9e762ac406310c62c3e30cde40f998 (diff) | |
download | libnsgif-811922e7a5c7de1a83a016ce76d0ea009b26d9fa.tar.gz libnsgif-811922e7a5c7de1a83a016ce76d0ea009b26d9fa.tar.bz2 |
GIF: Postpone initialisation of sprite until required.
-rw-r--r-- | src/libnsgif.c | 13 |
1 files changed, 5 insertions, 8 deletions
diff --git a/src/libnsgif.c b/src/libnsgif.c index 3870b15..5f68bcf 100644 --- a/src/libnsgif.c +++ b/src/libnsgif.c @@ -996,14 +996,6 @@ gif_internal_decode_frame(gif_animation *gif, goto gif_decode_frame_exit; } - /* Make sure we have a buffer to decode to. - */ - if (gif_initialise_sprite(gif, gif->width, gif->height)) { - return GIF_INSUFFICIENT_MEMORY; - } - - /* Decode the flags */ - return_value = gif__parse_image_descriptor(gif, &gif->frames[frame], false); if (return_value != GIF_OK) { return return_value; @@ -1036,6 +1028,11 @@ gif_internal_decode_frame(gif_animation *gif, goto gif_decode_frame_exit; } + /* Make sure we have a buffer to decode to. */ + if (gif_initialise_sprite(gif, gif->width, gif->height)) { + return GIF_INSUFFICIENT_MEMORY; + } + /* Get the frame data */ assert(gif->bitmap_callbacks.bitmap_get_buffer); frame_data = (void *)gif->bitmap_callbacks.bitmap_get_buffer(gif->frame_image); |