fixed noncontig dealloc and alloc