From 0f8a46ab674d5bd4391ef89b2b4002a3fcbb3b03 Mon Sep 17 00:00:00 2001 From: apio Date: Sat, 8 Apr 2023 14:46:58 +0200 Subject: [PATCH] Vector: Copy the right amount in try_dequeue() I always forget to multiply by sizeof(T)... --- libluna/include/luna/Vector.h | 14 ++++++-------- 1 file changed, 6 insertions(+), 8 deletions(-) diff --git a/libluna/include/luna/Vector.h b/libluna/include/luna/Vector.h index edee5bbc..27c12aac 100644 --- a/libluna/include/luna/Vector.h +++ b/libluna/include/luna/Vector.h @@ -65,13 +65,11 @@ template class Vector ~Vector() { - if (m_data) { - for(const T& item : *this) - { - item.~T(); - } + if (m_data) + { + for (const T& item : *this) { item.~T(); } free_impl(m_data); - } + } } Result try_reserve(usize capacity) @@ -115,10 +113,10 @@ template class Vector T item = move(m_data[0]); - memmove(m_data, m_data + 1, m_size - 1); - m_size--; + memmove(m_data, m_data + 1, m_size * sizeof(T)); + return move(item); }