The SET_NON_ZERO_NULL macro is silly. On any arch where null pointers are not represented as all zeroes, the null pointer value is still *spelled* "0" in source code. C<FOO *p = 0> always works, for all values of FOO and all architectures.
If I'm missing something, please speak up. -- Chip Salzenberg - a.k.a. - <[EMAIL PROTECTED]> Open Source is not an excuse to write fun code then leave the actual work to others.