MCPcopy Create free account
hub / github.com/Kitware/VTK / assign_void_array

Function assign_void_array

Common/Core/Testing/Cxx/TestArrayFreeFunctions.cxx:110–135  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

108//------------------------------------------------------------------------------
109template <typename FreeType>
110int assign_void_array(
111 FreeType, vtkAbstractArray* array, void* ptr, std::size_t size, bool vtkShouldFree)
112{
113 int errors = 0;
114 if (vtkSOADataArrayTemplate<double>* is_soa =
115 vtkArrayDownCast<vtkSOADataArrayTemplate<double>>(array))
116 {
117 is_soa->SetNumberOfComponents(1);
118 is_soa->SetArray(0, reinterpret_cast<double*>(ptr), static_cast<vtkIdType>(size), false,
119 !vtkShouldFree, FreeType::value);
120 }
121 else if (vtkScaledSOADataArrayTemplate<double>* is_scale_soa =
122 vtkArrayDownCast<vtkScaledSOADataArrayTemplate<double>>(array))
123 {
124 is_scale_soa->SetNumberOfComponents(1);
125 is_scale_soa->SetArray(0, reinterpret_cast<double*>(ptr), static_cast<vtkIdType>(size), false,
126 !vtkShouldFree, FreeType::value);
127 }
128 else
129 {
130 const int save = vtkShouldFree ? 0 : 1;
131 array->SetVoidArray(ptr, static_cast<vtkIdType>(size), save, FreeType::value);
132 testAssert(array->GetVoidPointer(0) == ptr, "assignment failed");
133 }
134 return errors;
135}
136
137//------------------------------------------------------------------------------
138template <typename FreeType>

Callers 1

ExerciseDeleteFunction · 0.85

Calls 4

SetVoidArrayMethod · 0.80
SetNumberOfComponentsMethod · 0.45
SetArrayMethod · 0.45
GetVoidPointerMethod · 0.45

Tested by

no test coverage detected