На это страшно смотреть... А учитывая то, что в реальной проге указатели добываются из структуры - вообще мрак. :o( Можно ли как нибудь по другому? Код (Text): mov eax, lpMem1 or eax, eax jz @F invoke HeapFree, hHeap, NULL, eax @@: mov eax, lpMem2 or eax, eax jz @F invoke HeapFree, hHeap, NULL, eax ... @@: mov eax, lpMemN or eax, eax jz @F invoke HeapFree, hHeap, NULL, eax Может забить проверку на 0? Чем чревато, кроме матюков HeapFree?
Ну судя по всему ничем не грозит. Код RtlHeapFree Код (Text): text:7C91043D push 0A0h .text:7C910442 push offset dword_7C910570 .text:7C910447 call sub_7C90EDC2 .text:7C91044C mov edi, [ebp+arg_4] .text:7C91044F mov [ebp+var_38], edi .text:7C910452 xor ebx, ebx .text:7C910454 mov [ebp+var_1D], bl .text:7C910457 mov [ebp+var_1E], 1 .text:7C91045B mov esi, [ebp+arg_C] .text:7C91045E cmp esi, ebx .text:7C910460 jz loc_7C910566 ..... .text:7C910566 loc_7C910566: ; CODE XREF: RtlFreeHeap+23j .text:7C910566 ; RtlFreeHeap+2184Ej ... .text:7C910566 mov al, 1 .text:7C910568 .text:7C910568 loc_7C910568: ; CODE XREF: RtlFreeHeap+A36j .text:7C910568 ; RtlFreeHeap+16470j ... .text:7C910568 call sub_7C90EE02 .text:7C91056D retn 0Ch