vector/src/main/java/org/apache/arrow/vector/complex/ListVector.java [548:574]:
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    public void splitAndTransfer(int startIndex, int length) {
      Preconditions.checkArgument(
          startIndex >= 0 && length >= 0 && startIndex + length <= valueCount,
          "Invalid parameters startIndex: %s, length: %s for valueCount: %s",
          startIndex,
          length,
          valueCount);
      to.clear();
      if (length > 0) {
        final int startPoint = offsetBuffer.getInt(startIndex * OFFSET_WIDTH);
        final int sliceLength =
            offsetBuffer.getInt((startIndex + length) * OFFSET_WIDTH) - startPoint;
        to.offsetBuffer = to.allocateOffsetBuffer((length + 1) * OFFSET_WIDTH);
        /* splitAndTransfer offset buffer */
        for (int i = 0; i < length + 1; i++) {
          final int relativeOffset =
              offsetBuffer.getInt((startIndex + i) * OFFSET_WIDTH) - startPoint;
          to.offsetBuffer.setInt(i * OFFSET_WIDTH, relativeOffset);
        }
        /* splitAndTransfer validity buffer */
        splitAndTransferValidityBuffer(startIndex, length, to);
        /* splitAndTransfer data buffer */
        dataTransferPair.splitAndTransfer(startPoint, sliceLength);
        to.lastSet = length - 1;
        to.setValueCount(length);
      }
    }
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -



vector/src/main/java/org/apache/arrow/vector/complex/MapVector.java [207:233]:
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    public void splitAndTransfer(int startIndex, int length) {
      Preconditions.checkArgument(
          startIndex >= 0 && length >= 0 && startIndex + length <= valueCount,
          "Invalid parameters startIndex: %s, length: %s for valueCount: %s",
          startIndex,
          length,
          valueCount);
      to.clear();
      if (length > 0) {
        final int startPoint = offsetBuffer.getInt(startIndex * OFFSET_WIDTH);
        final int sliceLength =
            offsetBuffer.getInt((startIndex + length) * OFFSET_WIDTH) - startPoint;
        to.offsetBuffer = to.allocateOffsetBuffer((length + 1) * OFFSET_WIDTH);
        /* splitAndTransfer offset buffer */
        for (int i = 0; i < length + 1; i++) {
          final int relativeOffset =
              offsetBuffer.getInt((startIndex + i) * OFFSET_WIDTH) - startPoint;
          to.offsetBuffer.setInt(i * OFFSET_WIDTH, relativeOffset);
        }
        /* splitAndTransfer validity buffer */
        splitAndTransferValidityBuffer(startIndex, length, to);
        /* splitAndTransfer data buffer */
        dataTransferPair.splitAndTransfer(startPoint, sliceLength);
        to.lastSet = length - 1;
        to.setValueCount(length);
      }
    }
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -



