c/src/main/java/org/apache/arrow/c/StructVectorUnloader.java [92:120]:
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
  private long getVariadicBufferCount(FieldVector vector) {
    if (vector instanceof BaseVariableWidthViewVector) {
      return ((BaseVariableWidthViewVector) vector).getDataBuffers().size();
    }
    return 0L;
  }

  private void appendNodes(
      FieldVector vector,
      List<ArrowFieldNode> nodes,
      List<ArrowBuf> buffers,
      List<Long> variadicBufferCounts) {
    nodes.add(
        new ArrowFieldNode(vector.getValueCount(), includeNullCount ? vector.getNullCount() : -1));
    List<ArrowBuf> fieldBuffers = vector.getFieldBuffers();
    long variadicBufferCount = getVariadicBufferCount(vector);
    int expectedBufferCount =
        (int) (TypeLayout.getTypeBufferCount(vector.getField().getType()) + variadicBufferCount);
    // only update variadicBufferCounts for vectors that have variadic buffers
    if (vector instanceof BaseVariableWidthViewVector) {
      variadicBufferCounts.add(variadicBufferCount);
    }
    if (fieldBuffers.size() != expectedBufferCount) {
      throw new IllegalArgumentException(
          String.format(
              "wrong number of buffers for field %s in vector %s. found: %s",
              vector.getField(), vector.getClass().getSimpleName(), fieldBuffers));
    }
    for (ArrowBuf buf : fieldBuffers) {
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -



vector/src/main/java/org/apache/arrow/vector/VectorUnloader.java [95:123]:
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
  private long getVariadicBufferCount(FieldVector vector) {
    if (vector instanceof BaseVariableWidthViewVector) {
      return ((BaseVariableWidthViewVector) vector).getDataBuffers().size();
    }
    return 0L;
  }

  private void appendNodes(
      FieldVector vector,
      List<ArrowFieldNode> nodes,
      List<ArrowBuf> buffers,
      List<Long> variadicBufferCounts) {
    nodes.add(
        new ArrowFieldNode(vector.getValueCount(), includeNullCount ? vector.getNullCount() : -1));
    List<ArrowBuf> fieldBuffers = vector.getFieldBuffers();
    long variadicBufferCount = getVariadicBufferCount(vector);
    int expectedBufferCount =
        (int) (TypeLayout.getTypeBufferCount(vector.getField().getType()) + variadicBufferCount);
    // only update variadicBufferCounts for vectors that have variadic buffers
    if (vector instanceof BaseVariableWidthViewVector) {
      variadicBufferCounts.add(variadicBufferCount);
    }
    if (fieldBuffers.size() != expectedBufferCount) {
      throw new IllegalArgumentException(
          String.format(
              "wrong number of buffers for field %s in vector %s. found: %s",
              vector.getField(), vector.getClass().getSimpleName(), fieldBuffers));
    }
    for (ArrowBuf buf : fieldBuffers) {
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -



