int blockIndex = slices.size();
slices.add(blockIndex, block.getSlice());
slicesMemorySize += block.getSlice().length();
BlockCursor cursor = block.cursor();
for (int position = 0; position < block.getPositionCount(); position++) {
checkState(cursor.advanceNextPosition());
int offset = cursor.getRawOffset();
long sliceAddress = encodeSyntheticAddress(blockIndex, offset);
checkState((int) (sliceAddress >> 32) == blockIndex);