allocator: always split at gap or at call