Module: wine Branch: master Commit: 880b98bf23f3031f4a0b6c2a1fd5f96e672e1927 URL: http://source.winehq.org/git/wine.git/?a=commit;h=880b98bf23f3031f4a0b6c2a1f... Author: Dmitry Timoshkov <dmitry(a)baikal.ru> Date: Tue Sep 18 12:58:25 2012 +0900 windowscodecs: GIF Graphic Control Extension block belongs to the image which follows it. --- dlls/windowscodecs/ungif.c | 11 +++++++---- 1 files changed, 7 insertions(+), 4 deletions(-) diff --git a/dlls/windowscodecs/ungif.c b/dlls/windowscodecs/ungif.c index 66310cb..7984e3a 100644 --- a/dlls/windowscodecs/ungif.c +++ b/dlls/windowscodecs/ungif.c @@ -885,16 +885,19 @@ DGifSlurp(GifFileType * GifFile) { case EXTENSION_RECORD_TYPE: { + int Function; Extensions *Extensions; - if (GifFile->ImageCount) + if (DGifGetExtension(GifFile, &Function, &ExtData) == GIF_ERROR) + return (GIF_ERROR); + + if (GifFile->ImageCount || Function == GRAPHICS_EXT_FUNC_CODE) Extensions = &temp_save; else Extensions = &GifFile->Extensions; - if (DGifGetExtension(GifFile, &Extensions->Function, &ExtData) == - GIF_ERROR) - return (GIF_ERROR); + Extensions->Function = Function; + while (ExtData != NULL) { /* Create an extension block with our data */