>     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