From 64fe21610f7393ab49ec365902e3ec34dbeaea5b Mon Sep 17 00:00:00 2001 From: Hyukjin Kwon Date: Tue, 30 Dec 2025 11:08:53 +0900 Subject: [PATCH] GH-48684: [C++] Update MakeListArray to use ListArray::FromArrays instead of constructor --- cpp/src/arrow/ipc/test_common.cc | 18 +++++++++++------- 1 file changed, 11 insertions(+), 7 deletions(-) diff --git a/cpp/src/arrow/ipc/test_common.cc b/cpp/src/arrow/ipc/test_common.cc index dea40f18e81..02e6b816c0b 100644 --- a/cpp/src/arrow/ipc/test_common.cc +++ b/cpp/src/arrow/ipc/test_common.cc @@ -172,15 +172,19 @@ Status MakeListArray(const std::shared_ptr& child_array, int num_lists, offsets[num_lists] = static_cast(child_array->length()); - /// TODO(wesm): Implement support for nulls in ListArray::FromArrays - std::shared_ptr null_bitmap, offsets_buffer; + // Create offsets array + using OffsetArrowType = typename TypeTraits::OffsetType; + std::shared_ptr offsets_array; + ArrayFromVector(offsets, &offsets_array); + + // Create null bitmap + std::shared_ptr null_bitmap; RETURN_NOT_OK(GetBitmapFromVector(valid_lists, &null_bitmap)); - RETURN_NOT_OK(CopyBufferFromVector(offsets, pool, &offsets_buffer)); - *out = std::make_shared(std::make_shared(child_array->type()), - num_lists, offsets_buffer, child_array, null_bitmap, - kUnknownNullCount); - return (**out).Validate(); + // Use FromArrays which supports nulls via null_bitmap parameter + ARROW_ASSIGN_OR_RAISE(*out, ArrayType::FromArrays(*offsets_array, *child_array, pool, + null_bitmap, kUnknownNullCount)); + return Status::OK(); } Status MakeRandomListViewArray(const std::shared_ptr& child_array, int num_lists,