> Here is a more-detailed review of the latest patch you sent.
>
> > - int i = 0, aligned = (intptr_t) ABLOCKS_BUSY (abase);
> > + int i = 0, aligned = (ABLOCKS_BUSY (abase) != NULL);
>
> Not needed for Windows 64. The change slows the code down a bit, and
>
>
> Prove it.
I compiled it both ways (x86-64 GCC 4.6.2), and the "!= NULL" version
has an extra "cmpl" instruction, so it is indeed a bit fatter.
Just for fun :
version with != NULL :
; Line 1156
xor edx, edx
test rax, rax
lea rcx, OFFSET FLAT:free_ablock
setne dl
add rdx, 15
shl rdx, 10
add rdx, rdi
version without it :
; Line 1156
xor edx, edx
lea rcx, OFFSET FLAT:free_ablock
cmp DWORD PTR [rdi+1016], edx
setne dl
add rdx, 15
shl rdx, 10
add rdx, rdi
cmp on one side, test on the other side.
Fabrice