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