Skip to content

Commit 9841039

Browse files
author
Yicong Huang
committed
fix: comment
1 parent b0d39cd commit 9841039

2 files changed

Lines changed: 12 additions & 2 deletions

File tree

vector/src/main/java/org/apache/arrow/vector/complex/LargeListVector.java

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -278,6 +278,7 @@ public List<ArrowBuf> getFieldBuffers() {
278278
setReaderAndWriterIndex();
279279
result.add(validityBuffer);
280280
result.add(offsetBuffer);
281+
281282
return result;
282283
}
283284

@@ -306,7 +307,11 @@ public void exportCDataBuffers(List<ArrowBuf> buffers, ArrowBuf buffersPtr, long
306307
private void setReaderAndWriterIndex() {
307308
validityBuffer.readerIndex(0);
308309
offsetBuffer.readerIndex(0);
309-
validityBuffer.writerIndex(BitVectorHelper.getValidityBufferSizeFromCount(valueCount));
310+
if (valueCount == 0) {
311+
validityBuffer.writerIndex(0);
312+
} else {
313+
validityBuffer.writerIndex(BitVectorHelper.getValidityBufferSizeFromCount(valueCount));
314+
}
310315
// IPC serializer will determine readable bytes based on `readerIndex` and `writerIndex`.
311316
// Both are set to 0 means 0 bytes are written to the IPC stream which will crash IPC readers
312317
// in other libraries. According to Arrow spec, we should still output the offset buffer which

vector/src/main/java/org/apache/arrow/vector/complex/ListVector.java

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -236,6 +236,7 @@ public List<ArrowBuf> getFieldBuffers() {
236236
setReaderAndWriterIndex();
237237
result.add(validityBuffer);
238238
result.add(offsetBuffer);
239+
239240
return result;
240241
}
241242

@@ -264,7 +265,11 @@ public void exportCDataBuffers(List<ArrowBuf> buffers, ArrowBuf buffersPtr, long
264265
private void setReaderAndWriterIndex() {
265266
validityBuffer.readerIndex(0);
266267
offsetBuffer.readerIndex(0);
267-
validityBuffer.writerIndex(BitVectorHelper.getValidityBufferSizeFromCount(valueCount));
268+
if (valueCount == 0) {
269+
validityBuffer.writerIndex(0);
270+
} else {
271+
validityBuffer.writerIndex(BitVectorHelper.getValidityBufferSizeFromCount(valueCount));
272+
}
268273
// IPC serializer will determine readable bytes based on `readerIndex` and `writerIndex`.
269274
// Both are set to 0 means 0 bytes are written to the IPC stream which will crash IPC readers
270275
// in other libraries. According to Arrow spec, we should still output the offset buffer which

0 commit comments

Comments
 (0)