use uintptr_t to get a 32-bit unsigned int on 32-bit arch, 64-bit on 64