Fix issues with stablevector

This commit is contained in:
Georg Hagen
2025-04-17 16:23:11 +02:00
parent ae7dee7259
commit 737d776f24
2 changed files with 4 additions and 7 deletions

View File

@@ -261,18 +261,17 @@ namespace OpenVulkano
void PopBack()
{
if (m_size == 0)
{
return; // return? or make
}
if (m_size == 0) return;
if (m_lastChunk->m_nextIndex == 1 && m_lastChunk != m_firstChunk)
{
VectorChunk* temp = m_lastChunk;
m_capacity -= temp->m_capacity;
m_lastChunk = m_lastChunk->m_prev;
m_lastChunk->m_next = nullptr;
temp->~VectorChunk();
::operator delete(temp);
m_size--;
return;
}

View File

@@ -90,15 +90,13 @@ TEST_CASE("ChunkVector")
REQUIRE(vec.Size() == 100);
uint64_t tempVal = vec.Capacity();
for (uint32_t i = 0; i < 50; ++i)
{
vec.PopBack();
}
REQUIRE(vec.Size() == 50);
REQUIRE(vec.Capacity() == tempVal);
REQUIRE(vec.Capacity() == 32 + 64);
}
SECTION("Iterators with empty vector")