For 32bit external pointer it was performing a divide by size, and for things not managed by snmalloc this was causing a crash. This checks for zero, and gives the start of the address range as the start of the object.