// scan from index start
while (file.bytesPastMark(mark) < currentIndex.width || deserializer.hasUnprocessed())
{
// col is before slice
// (If in slice, don't bother checking that until we change slice)
Composite start = currentStart();
if (!inSlice && !start.isEmpty() && deserializer.compareNextTo(start) < 0)
{
if (reversed)
{
// the next slice select columns that are before the current one, so it may
// match this column, so keep it around.
prefetched.addFirst(deserializer.readNext());
}
else
{
deserializer.skipNext();
}
}
// col is within slice
else
{
Composite finish = currentFinish();
if (finish.isEmpty() || deserializer.compareNextTo(finish) <= 0)
{
inSlice = true;
addColumn(deserializer.readNext());
}
// col is after slice.