From c5f96637ce4b34e19b79bd84d834e43a96158f8b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Vladim=C3=ADr=20Vondru=C5=A1?= Date: Sun, 9 Apr 2023 18:49:05 +0200 Subject: [PATCH] MeshTools: simplify compressIndices() internals. This code got written in the Stone Age days, it seems. Also, the array can be NoInit'd, no need to waste time zero-initializing it first. --- src/Magnum/MeshTools/CompressIndices.cpp | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) diff --git a/src/Magnum/MeshTools/CompressIndices.cpp b/src/Magnum/MeshTools/CompressIndices.cpp index 95d9b2cc4..1e4a2c61c 100644 --- a/src/Magnum/MeshTools/CompressIndices.cpp +++ b/src/Magnum/MeshTools/CompressIndices.cpp @@ -25,7 +25,6 @@ #include "CompressIndices.h" -#include #include #include #include @@ -46,11 +45,10 @@ namespace { template inline Containers::Array compress(const Containers::StridedArrayView1D& indices, Long offset) { /* Can't use Math::castInto() here because we're subtracting an offset in addition */ - Containers::Array buffer(indices.size()*sizeof(T)); - for(std::size_t i = 0; i != indices.size(); ++i) { - T index = static_cast(indices[i] - offset); - std::memcpy(buffer.begin()+i*sizeof(T), &index, sizeof(T)); - } + Containers::Array buffer{NoInit, indices.size()*sizeof(T)}; + const Containers::ArrayView view = Containers::arrayCast(buffer); + for(std::size_t i = 0; i != indices.size(); ++i) + view[i] = indices[i] - offset; return buffer; }