diff --git a/openVulkanoCpp/Data/Containers/RingBuffer.hpp b/openVulkanoCpp/Data/Containers/RingBuffer.hpp index 44004a4..541821b 100644 --- a/openVulkanoCpp/Data/Containers/RingBuffer.hpp +++ b/openVulkanoCpp/Data/Containers/RingBuffer.hpp @@ -80,6 +80,7 @@ namespace OpenVulkano ForwardIteratorBase& operator--() { + if (remainder == 0) { remainder++; return *this; } if (index == 0) index = buffer->capacity() - 1; else @@ -151,6 +152,7 @@ namespace OpenVulkano ReverseIteratorBase& operator--() { + if (remainder == 0) { remainder++; return *this; } if (index == buffer->capacity() - 1) index = 0; else @@ -486,7 +488,7 @@ namespace OpenVulkano [[nodiscard]] size_t Index(size_t i) const { if constexpr (POW2) - return (Parent::HeadId() - (Parent::Count() - 1) - i) & MASK; + return (Parent::HeadId() - (Parent::Count() - 1) + i) & MASK; else return (TailId() + i) % Capacity(); }