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 | @@: |