Allocate only if needed in move_internal_ptr()