From 3d79f76e416c90223cb21cae118c41ace021da2c Mon Sep 17 00:00:00 2001 From: ISSOtm Date: Mon, 7 Mar 2022 22:51:47 +0100 Subject: [PATCH] Avoid calling `skipEmpty()` for `AssignedProtos::end()` --- src/gfx/pal_packing.cpp | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/src/gfx/pal_packing.cpp b/src/gfx/pal_packing.cpp index 97bacedc..e354c4f5 100644 --- a/src/gfx/pal_packing.cpp +++ b/src/gfx/pal_packing.cpp @@ -89,13 +89,12 @@ private: Constness *_array = nullptr; Inner _iter{}; - Iter(decltype(_array) array, decltype(_iter) &&iter) : _array(array), _iter(iter) { - skipEmpty(); - } - void skipEmpty() { + Iter(decltype(_array) array, decltype(_iter) &&iter) : _array(array), _iter(iter) {} + Iter &skipEmpty() { while (_iter != _array->end() && !_iter->has_value()) { ++_iter; } + return *this; } public: @@ -128,10 +127,12 @@ private: }; public: using iterator = Iter; - iterator begin() { return iterator{&_assigned, _assigned.begin()}; } + iterator begin() { return iterator{&_assigned, _assigned.begin()}.skipEmpty(); } iterator end() { return iterator{&_assigned, _assigned.end()}; } using const_iterator = Iter; - const_iterator begin() const { return const_iterator{&_assigned, _assigned.begin()}; } + const_iterator begin() const { + return const_iterator{&_assigned, _assigned.begin()}.skipEmpty(); + } const_iterator end() const { return const_iterator{&_assigned, _assigned.end()}; } /**