jorisvandenbossche commented on code in PR #41956:
URL: https://github.com/apache/arrow/pull/41956#discussion_r1627677839


##########
cpp/src/arrow/array/array_nested.cc:
##########
@@ -847,14 +847,13 @@ Result<std::shared_ptr<Array>> 
MapArray::FromArraysInternal(
   const auto& typed_offsets = checked_cast<const OffsetArrayType&>(*offsets);
 
   BufferVector buffers;
-  int64_t null_count;
-  if (null_bitmap != nullptr) {
-    buffers = BufferVector({std::move(null_bitmap), typed_offsets.values()});
-    null_count = null_bitmap->size();
-  } else {
-    buffers = BufferVector({null_bitmap, typed_offsets.values()});
-    null_count = 0;
+  buffers.resize(2);
+  int64_t null_count = 0;
+  if (null_bitmap) {
+    buffers[0] = std::move(null_bitmap);

Review Comment:
   Sorry, reading your comment above more carefully, you actually already 
explain it ;)
   
   
   
   > (I know this is not the style in the other `std::shared_ptr` parameters 
but is the direction we want to go with parameters in constructors of factory 
functions in general).
   
   Is this documented somewhere? For people not following the C++ development 
daily or less familiar with C++ (there are also a lot of different ways to 
write C++ code ..), it might be useful to have some guidelines about which 
typical patterns we want to use in Arrow (not sure if that would fit in 
https://arrow.apache.org/docs/dev/developers/cpp/conventions.html)



-- 
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