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

Method getValid

matlab/src/cpp/arrow/matlab/array/proxy/array.cc:99–118  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

97}
98
99void Array::getValid(libmexclass::proxy::method::Context& context) {
100 auto array_length = static_cast<size_t>(array->length());
101
102 // If the Arrow array has no null values, then return a MATLAB
103 // logical array that is all "true" for the validity bitmap.
104 if (array->null_count() == 0) {
105 ::matlab::data::ArrayFactory factory;
106 auto validity_buffer = factory.createBuffer<bool>(array_length);
107 auto validity_buffer_ptr = validity_buffer.get();
108 std::fill(validity_buffer_ptr, validity_buffer_ptr + array_length, true);
109 auto valid_elements_mda = factory.createArrayFromBuffer<bool>(
110 {array_length, 1}, std::move(validity_buffer));
111 context.outputs[0] = valid_elements_mda;
112 return;
113 }
114
115 auto validity_bitmap = array->null_bitmap();
116 auto valid_elements_mda = bit::unpack(validity_bitmap, array_length, array->offset());
117 context.outputs[0] = valid_elements_mda;
118}
119
120void Array::getType(libmexclass::proxy::method::Context& context) {
121 MATLAB_ASSIGN_OR_ERROR_WITH_CONTEXT(

Callers

nothing calls this directly

Calls 5

unpackFunction · 0.50
lengthMethod · 0.45
null_countMethod · 0.45
getMethod · 0.45
offsetMethod · 0.45

Tested by

no test coverage detected