Subversion Repositories Kolibri OS

Rev

Rev 6733 | Rev 6881 | Go to most recent revision | Show entire file | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 6733 Rev 6779
Line 171... Line 171...
171
		jmp .end0
171
		jmp .end0
172
	@@: ;else ;critical
172
	@@: ;else ;critical
173
		mov eax,[edi+png_struct.flags]
173
		mov eax,[edi+png_struct.flags]
174
		and eax,PNG_FLAG_CRC_CRITICAL_IGNORE
174
		and eax,PNG_FLAG_CRC_CRITICAL_IGNORE
175
		cmp eax,0
175
		jz .end0 ;if (..!=0)
176
		je .end0 ;if (..!=0)
-
 
177
			mov dword[need_crc],0
176
			mov dword[need_crc],0
178
	.end0:
177
	.end0:
179
 
178
 
Line 180... Line 179...
180
	; 'uLong' is defined in zlib.inc as unsigned long; this means that on some
179
	; 'uLong' is defined in zlib.inc as unsigned long; this means that on some
181
	; systems it is a 64-bit value.  crc32, however, returns 32 bits so the
180
	; systems it is a 64-bit value.  crc32, however, returns 32 bits so the
Line 550... Line 549...
550
	; Free any tRNS entry
549
	; Free any tRNS entry
551
	mov eax,[mask]
550
	mov eax,[mask]
552
	and eax,PNG_FREE_TRNS
551
	and eax,PNG_FREE_TRNS
553
	and eax,[esi+png_info_def.free_me]
552
	and eax,[esi+png_info_def.free_me]
554
	cmp eax,0
553
	jz @f ;if (..!=0)
555
	je @f ;if (..!=0)
-
 
556
		and dword[esi+png_info_def.valid], not PNG_INFO_tRNS
554
		and dword[esi+png_info_def.valid], not PNG_INFO_tRNS
557
		stdcall png_free, edi, [esi+png_info_def.trans_alpha]
555
		stdcall png_free, edi, [esi+png_info_def.trans_alpha]
558
		mov dword[esi+png_info_def.trans_alpha],0
556
		mov dword[esi+png_info_def.trans_alpha],0
559
		mov word[esi+png_info_def.num_trans],0
557
		mov word[esi+png_info_def.num_trans],0
560
	@@:
558
	@@:
561
end if
559
end if
Line 564... Line 562...
564
	; Free any sCAL entry
562
	; Free any sCAL entry
565
	mov eax,[mask]
563
	mov eax,[mask]
566
	and eax,PNG_FREE_SCAL
564
	and eax,PNG_FREE_SCAL
567
	and eax,[esi+png_info_def.free_me]
565
	and eax,[esi+png_info_def.free_me]
568
	cmp eax,0
566
	jz @f ;if (..!=0)
569
	je @f ;if (..!=0)
-
 
570
		stdcall png_free, edi, [esi+png_info_def.scal_s_width]
567
		stdcall png_free, edi, [esi+png_info_def.scal_s_width]
571
		stdcall png_free, edi, [esi+png_info_def.scal_s_height]
568
		stdcall png_free, edi, [esi+png_info_def.scal_s_height]
572
		mov dword[esi+png_info_def.scal_s_width],0
569
		mov dword[esi+png_info_def.scal_s_width],0
573
		mov dword[esi+png_info_def.scal_s_height],0
570
		mov dword[esi+png_info_def.scal_s_height],0
574
		and dword[esi+png_info_def.valid], not PNG_INFO_sCAL
571
		and dword[esi+png_info_def.valid], not PNG_INFO_sCAL
575
	@@:
572
	@@:
Line 602... Line 599...
602
	; Free any profile entry
599
	; Free any profile entry
603
	mov eax,[mask]
600
	mov eax,[mask]
604
	and eax,PNG_FREE_ICCP
601
	and eax,PNG_FREE_ICCP
605
	and eax,[esi+png_info_def.free_me]
602
	and eax,[esi+png_info_def.free_me]
606
	cmp eax,0
603
	jz @f ;if (..!=0)
607
	je @f ;if (..!=0)
-
 
608
		stdcall png_free, edi, [esi+png_info_def.iccp_name]
604
		stdcall png_free, edi, [esi+png_info_def.iccp_name]
609
		stdcall png_free, edi, [esi+png_info_def.iccp_profile]
605
		stdcall png_free, edi, [esi+png_info_def.iccp_profile]
610
		mov dword[esi+png_info_def.iccp_name],0
606
		mov dword[esi+png_info_def.iccp_name],0
611
		mov dword[esi+png_info_def.iccp_profile],0
607
		mov dword[esi+png_info_def.iccp_profile],0
612
		and dword[esi+png_info_def.valid], not PNG_INFO_iCCP
608
		and dword[esi+png_info_def.valid], not PNG_INFO_iCCP
613
	@@:
609
	@@:
Line 672... Line 668...
672
	; Free any hIST entry
668
	; Free any hIST entry
673
	mov eax,[mask]
669
	mov eax,[mask]
674
	and eax,PNG_FREE_HIST
670
	and eax,PNG_FREE_HIST
675
	and eax,[esi+png_info_def.free_me]
671
	and eax,[esi+png_info_def.free_me]
676
	cmp eax,0
672
	jz @f ;if (..!=0)
677
	je @f ;if (..!=0)
-
 
678
		stdcall png_free, edi, [esi+png_info_def.hist]
673
		stdcall png_free, edi, [esi+png_info_def.hist]
679
		mov dword[esi+png_info_def.hist],0
674
		mov dword[esi+png_info_def.hist],0
680
		and dword[esi+png_info_def.valid], not PNG_INFO_hIST
675
		and dword[esi+png_info_def.valid], not PNG_INFO_hIST
681
	@@:
676
	@@:
682
end if
677
end if
683
 
678
 
Line 684... Line 679...
684
	; Free any PLTE entry that was internally allocated
679
	; Free any PLTE entry that was internally allocated
685
	mov eax,[mask]
680
	mov eax,[mask]
686
	and eax,PNG_FREE_PLTE
681
	and eax,PNG_FREE_PLTE
687
	and eax,[esi+png_info_def.free_me]
682
	and eax,[esi+png_info_def.free_me]
688
	cmp eax,0
-
 
689
	je @f ;if (..!=0)
683
	jz @f ;if (..!=0)
690
		stdcall png_free, edi, [esi+png_info_def.palette]
684
		stdcall png_free, edi, [esi+png_info_def.palette]
691
		mov dword[esi+png_info_def.palette],0
685
		mov dword[esi+png_info_def.palette],0
692
		and dword[esi+png_info_def.valid],not PNG_INFO_PLTE
686
		and dword[esi+png_info_def.valid],not PNG_INFO_PLTE
693
		mov dword[esi+png_info_def.num_palette],0
687
		mov dword[esi+png_info_def.num_palette],0
694
	@@:
688
	@@: