Cleanup: unify method parameters for virtual arrays

This makes `GVArrayImpl` and `VArrayImpl` more similar.
Only passing the pointer instead of the span also increases
efficiency a little bit. The downside is that a few asserts had
to be removed as well. However, in practice the same asserts
are in place at a higher level as well (in `VArrayCommon`).
This commit is contained in:
2023-01-14 19:13:51 +01:00
parent 72cc68e299
commit ff15edc6ab
3 changed files with 58 additions and 83 deletions

View File

@@ -388,25 +388,24 @@ template<typename T> class VArrayImpl_For_GVArray : public VArrayImpl<T> {
return true;
}
void materialize(IndexMask mask, MutableSpan<T> r_span) const override
void materialize(IndexMask mask, T *dst) const override
{
varray_.materialize(mask, r_span.data());
varray_.materialize(mask, dst);
}
void materialize_to_uninitialized(IndexMask mask, MutableSpan<T> r_span) const override
void materialize_to_uninitialized(IndexMask mask, T *dst) const override
{
varray_.materialize_to_uninitialized(mask, r_span.data());
varray_.materialize_to_uninitialized(mask, dst);
}
void materialize_compressed(IndexMask mask, MutableSpan<T> r_span) const override
void materialize_compressed(IndexMask mask, T *dst) const override
{
varray_.materialize_compressed(mask, r_span.data());
varray_.materialize_compressed(mask, dst);
}
void materialize_compressed_to_uninitialized(IndexMask mask,
MutableSpan<T> r_span) const override
void materialize_compressed_to_uninitialized(IndexMask mask, T *dst) const override
{
varray_.materialize_compressed_to_uninitialized(mask, r_span.data());
varray_.materialize_compressed_to_uninitialized(mask, dst);
}
};
@@ -539,25 +538,24 @@ template<typename T> class VMutableArrayImpl_For_GVMutableArray : public VMutabl
return true;
}
void materialize(IndexMask mask, MutableSpan<T> r_span) const override
void materialize(IndexMask mask, T *dst) const override
{
varray_.materialize(mask, r_span.data());
varray_.materialize(mask, dst);
}
void materialize_to_uninitialized(IndexMask mask, MutableSpan<T> r_span) const override
void materialize_to_uninitialized(IndexMask mask, T *dst) const override
{
varray_.materialize_to_uninitialized(mask, r_span.data());
varray_.materialize_to_uninitialized(mask, dst);
}
void materialize_compressed(IndexMask mask, MutableSpan<T> r_span) const override
void materialize_compressed(IndexMask mask, T *dst) const override
{
varray_.materialize_compressed(mask, r_span.data());
varray_.materialize_compressed(mask, dst);
}
void materialize_compressed_to_uninitialized(IndexMask mask,
MutableSpan<T> r_span) const override
void materialize_compressed_to_uninitialized(IndexMask mask, T *dst) const override
{
varray_.materialize_compressed_to_uninitialized(mask, r_span.data());
varray_.materialize_compressed_to_uninitialized(mask, dst);
}
};