Skip to content

Commit 8e43334

Browse files
authored
Merge pull request #4886 from N-Dekker/PyVectorContainer-assign
Use `assign` in PyVectorContainer, declare `len` variables const
2 parents d36dfc6 + 8d70f6d commit 8e43334

File tree

2 files changed

+7
-20
lines changed

2 files changed

+7
-20
lines changed

Modules/Bridge/NumPy/include/itkPyVectorContainer.hxx

Lines changed: 3 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -37,13 +37,10 @@ PyVectorContainer<TElementIdentifier, TElement>::_array_view_from_vector_contain
3737

3838
DataType * buffer = vector->CastToSTLContainer().data();
3939

40-
void * vectorBuffer = buffer;
41-
4240
// Computing the length of data
43-
Py_ssize_t len = vector->Size();
44-
len *= sizeof(DataType);
41+
const auto len = static_cast<Py_ssize_t>(vector->size() * sizeof(DataType));
4542

46-
PyBuffer_FillInfo(&pyBuffer, nullptr, vectorBuffer, len, 0, PyBUF_CONTIG);
43+
PyBuffer_FillInfo(&pyBuffer, nullptr, buffer, len, 0, PyBUF_CONTIG);
4744
return PyMemoryView_FromBuffer(&pyBuffer);
4845
}
4946

@@ -80,11 +77,7 @@ PyVectorContainer<TElementIdentifier, TElement>::_vector_container_from_array(Py
8077
}
8178
const auto * const data = static_cast<const DataType *>(buffer);
8279
auto output = VectorContainerType::New();
83-
output->resize(numberOfElements);
84-
for (size_t ii = 0; ii < numberOfElements; ++ii)
85-
{
86-
output->SetElement(ii, data[ii]);
87-
}
80+
output->assign(data, data + numberOfElements);
8881

8982
return output;
9083
}

Modules/Bridge/NumPy/include/itkPyVnl.hxx

Lines changed: 4 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -37,13 +37,10 @@ PyVnl<TElement>::_GetArrayViewFromVnlVector(VectorType * vector)
3737

3838
DataType * buffer = vector->data_block();
3939

40-
void * vectorBuffer = buffer;
41-
4240
// Computing the length of data
43-
Py_ssize_t len = vector->size();
44-
len *= sizeof(DataType);
41+
const auto len = static_cast<Py_ssize_t>(vector->size() * sizeof(DataType));
4542

46-
PyBuffer_FillInfo(&pyBuffer, nullptr, vectorBuffer, len, 0, PyBUF_CONTIG);
43+
PyBuffer_FillInfo(&pyBuffer, nullptr, buffer, len, 0, PyBUF_CONTIG);
4744
return PyMemoryView_FromBuffer(&pyBuffer);
4845
}
4946

@@ -94,13 +91,10 @@ PyVnl<TElement>::_GetArrayViewFromVnlMatrix(MatrixType * matrix)
9491

9592
DataType * buffer = matrix->data_block();
9693

97-
void * matrixBuffer = buffer;
98-
9994
// Computing the length of data
100-
Py_ssize_t len = matrix->size();
101-
len *= sizeof(DataType);
95+
const auto len = static_cast<Py_ssize_t>(matrix->size() * sizeof(DataType));
10296

103-
PyBuffer_FillInfo(&pyBuffer, nullptr, matrixBuffer, len, 0, PyBUF_CONTIG);
97+
PyBuffer_FillInfo(&pyBuffer, nullptr, buffer, len, 0, PyBUF_CONTIG);
10498
return PyMemoryView_FromBuffer(&pyBuffer);
10599
}
106100

0 commit comments

Comments
 (0)