paleolimbot opened a new pull request, #41054:
URL: https://github.com/apache/arrow/pull/41054

   
   ### Rationale for this change
   
   When implementing integration tests for nanoarrow, it was observed that C# 
never released arrays where `array->buffers[i]` was `NULL` (including any 
buffers of any recursive child arrays). This is allowed ( 
https://arrow.apache.org/docs/format/CDataInterface.html#c.ArrowArray.buffers 
); however, every other implementation appears to allocate even for length zero 
buffers (including nanoarrow after 
https://github.com/apache/arrow-nanoarrow/pull/399 ).
   
   ### What changes are included in this PR?
   
   `AddMemory()` is replaced with `ArrowBuffer.Empty` if the length of the 
imported buffer would have been 0 bytes. For other buffers (or anywhere I saw 
dereferencing a buffer pointer), I added a `Debug.Assert` just to be sure.
   
   ### Are these changes tested?
   
   I'm not sure what the best way to test them is! They won't be tested in the 
nanoarrow integration tests since at the point that they run, nanoarrow will no 
longer export arrays that would trigger this.
   
   ### Are there any user-facing changes?
   
   No


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]

Reply via email to