MCPcopy Create free account
hub / github.com/apache/arrow / CopyOffsets

Method CopyOffsets

cpp/src/arrow/util/hashing.h:760–776  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

758 // Copy (n + 1) offsets starting from index `start` into `out_data`
759 template <class Offset>
760 void CopyOffsets(int32_t start, Offset* out_data) const {
761 ARROW_DCHECK_LE(start, size());
762
763 const builder_offset_type* offsets = binary_builder_.offsets_data();
764 const builder_offset_type delta =
765 start < binary_builder_.length() ? offsets[start] : 0;
766 for (int32_t i = start; i < size(); ++i) {
767 const builder_offset_type adjusted_offset = offsets[i] - delta;
768 Offset cast_offset = static_cast<Offset>(adjusted_offset);
769 assert(static_cast<builder_offset_type>(cast_offset) ==
770 adjusted_offset); // avoid truncation
771 *out_data++ = cast_offset;
772 }
773
774 // Copy last value since BinaryBuilder only materializes it on in Finish()
775 *out_data = static_cast<Offset>(binary_builder_.value_data_length() - delta);
776 }
777
778 template <class Offset>
779 void CopyOffsets(Offset* out_data) const {

Callers 2

TESTFunction · 0.80

Calls 4

offsets_dataMethod · 0.80
value_data_lengthMethod · 0.80
sizeFunction · 0.50
lengthMethod · 0.45

Tested by 1

TESTFunction · 0.64