libimg: fixed processing of some interlaced GIFs

git-svn-id: svn://kolibrios.org@1121 a494cfbc-eb01-0410-851d-a64ba20cac60
This commit is contained in:
Evgeny Grechnikov (Diamond) 2009-07-02 20:53:47 +00:00
parent c9b2d4590c
commit 3d9673dba4

View File

@ -290,7 +290,7 @@ img.decode.gif.cur_color_table_size_child equ ebp + 4 + 4 + 4*3 + 4
test edx, edx test edx, edx
jz .nofreeprev jz .nofreeprev
mov ebx, [edx + Image.Extended] mov ebx, [edx + Image.Extended]
cmp [ebx + gif.Image.gce.DelayTime], 0 cmp [edx + Image.Delay], 0
jnz .nofreeprev jnz .nofreeprev
mov esi, [prev_palette] mov esi, [prev_palette]
cmp esi, [edx + Image.Palette] cmp esi, [edx + Image.Palette]
@ -698,8 +698,6 @@ img.decode.gif._.process_image.output:
mov [img.decode.gif.max_color_child], al mov [img.decode.gif.max_color_child], al
@@: stosb @@: stosb
cmp edi, [img_end]
jz .done
cmp edi, [row_end] cmp edi, [row_end]
jb .norowend jb .norowend
mov eax, [width] mov eax, [width]
@ -718,6 +716,8 @@ img.decode.gif._.process_image.output:
jb .nextrow jb .nextrow
mov edi, [img_start] mov edi, [img_start]
inc [pass] inc [pass]
cmp [pass], 4
je .done
add edi, eax add edi, eax
cmp [pass], 3 cmp [pass], 3
je @f je @f
@ -734,6 +734,8 @@ img.decode.gif._.process_image.output:
xor eax, eax xor eax, eax
.norowend: .norowend:
cmp edi, [img_end]
jz .done
loop .loop2 loop .loop2
pop edx eax esi pop edx eax esi
retn retn