From c1960635d254db1c3f2cf6cefe9db8eac31830f0 Mon Sep 17 00:00:00 2001 From: Alexei Kotov Date: Fri, 7 Feb 2025 04:55:06 +0300 Subject: [PATCH] Optimize NIF boolean vector reading --- components/nif/nifstream.cpp | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/components/nif/nifstream.cpp b/components/nif/nifstream.cpp index f960e8d972..ef63bae937 100644 --- a/components/nif/nifstream.cpp +++ b/components/nif/nifstream.cpp @@ -228,13 +228,17 @@ namespace Nif { if (getVersion() < generateVersion(4, 1, 0, 0)) { - for (bool& value : std::span(dest, size)) - value = get() != 0; + std::vector buf(size); + read(buf.data(), size); + for (size_t i = 0; i < size; ++i) + dest[i] = buf[i] != 0; } else { - for (bool& value : std::span(dest, size)) - value = get() != 0; + std::vector buf(size); + read(buf.data(), size); + for (size_t i = 0; i < size; ++i) + dest[i] = buf[i] != 0; } }