Cache page
Bigfoot / Build & Test Debug with ./ConanProfiles/clang (Unity Build: OFF) (push) Successful in 5m44s
Bigfoot / Build & Test Debug with ./ConanProfiles/clang (Unity Build: ON) (push) Successful in 5m49s
Bigfoot / Build & Test Debug with ./ConanProfiles/clang_asan (Unity Build: OFF) (push) Successful in 6m10s
Bigfoot / Build & Test Debug with ./ConanProfiles/clang_asan (Unity Build: ON) (push) Successful in 6m8s
Bigfoot / Build & Test RelWithDebInfo with ./ConanProfiles/clang (Unity Build: OFF) (push) Successful in 6m20s
Bigfoot / Build & Test RelWithDebInfo with ./ConanProfiles/clang (Unity Build: ON) (push) Successful in 6m16s
Bigfoot / Build & Test RelWithDebInfo with ./ConanProfiles/clang_asan (Unity Build: OFF) (push) Successful in 7m29s
Bigfoot / Build & Test RelWithDebInfo with ./ConanProfiles/clang_asan (Unity Build: ON) (push) Successful in 7m26s
Bigfoot / Build & Test Release with ./ConanProfiles/clang (Unity Build: OFF) (push) Successful in 6m14s
Bigfoot / Build & Test Release with ./ConanProfiles/clang (Unity Build: ON) (push) Successful in 6m11s
Bigfoot / Build & Test Release with ./ConanProfiles/clang_asan (Unity Build: OFF) (push) Successful in 7m7s
Bigfoot / Build & Test Release with ./ConanProfiles/clang_asan (Unity Build: ON) (push) Successful in 7m5s
Bigfoot / Clang Format Checks (push) Failing after 12s

This commit is contained in:
2026-08-09 16:25:45 +02:00
parent ccd256f87f
commit aea18bb048
@@ -476,17 +476,20 @@ class StableSlotMap: public SlotMapBase
{
for (; p_pageIndex < m_map->m_pages.size(); ++p_pageIndex)
{
const std::size_t offset = m_map->m_pages[p_pageIndex]->m_occupied.find_first();
Page* const page = m_map->m_pages[p_pageIndex].get();
const std::size_t offset = page->m_occupied.find_first();
if (offset != PAGE_SIZE)
{
m_pageIndex = p_pageIndex;
m_page = page;
m_offset = offset;
m_current = m_map->m_pages[p_pageIndex]->SlotAt(offset);
m_current = page->SlotAt(offset);
return;
}
}
m_pageIndex = m_map->m_pages.size();
m_page = nullptr;
m_offset = 0;
m_current = nullptr;
}
@@ -495,12 +498,14 @@ class StableSlotMap: public SlotMapBase
{
for (;;)
{
const std::size_t offset = m_map->m_pages[p_pageIndex]->m_occupied.find_last();
Page* const page = m_map->m_pages[p_pageIndex].get();
const std::size_t offset = page->m_occupied.find_last();
if (offset != PAGE_SIZE)
{
m_pageIndex = p_pageIndex;
m_page = page;
m_offset = offset;
m_current = m_map->m_pages[p_pageIndex]->SlotAt(offset);
m_current = page->SlotAt(offset);
return;
}
@@ -514,11 +519,11 @@ class StableSlotMap: public SlotMapBase
void Advance()
{
const std::size_t offset = m_map->m_pages[m_pageIndex]->m_occupied.find_next(m_offset);
const std::size_t offset = m_page->m_occupied.find_next(m_offset);
if (offset != PAGE_SIZE)
{
m_offset = offset;
m_current = m_map->m_pages[m_pageIndex]->SlotAt(offset);
m_current = m_page->SlotAt(offset);
return;
}
@@ -533,11 +538,11 @@ class StableSlotMap: public SlotMapBase
return;
}
const std::size_t offset = m_map->m_pages[m_pageIndex]->m_occupied.find_prev(m_offset);
const std::size_t offset = m_page->m_occupied.find_prev(m_offset);
if (offset != PAGE_SIZE)
{
m_offset = offset;
m_current = m_map->m_pages[m_pageIndex]->SlotAt(offset);
m_current = m_page->SlotAt(offset);
return;
}
@@ -549,6 +554,7 @@ class StableSlotMap: public SlotMapBase
}
StableSlotMap* m_map = nullptr;
Page* m_page = nullptr;
std::size_t m_pageIndex = 0;
std::size_t m_offset = 0;
TYPE* m_current = nullptr;
@@ -621,17 +627,20 @@ class StableSlotMap: public SlotMapBase
{
for (; p_pageIndex < m_map->m_pages.size(); ++p_pageIndex)
{
const std::size_t offset = m_map->m_pages[p_pageIndex]->m_occupied.find_first();
const Page* const page = m_map->m_pages[p_pageIndex].get();
const std::size_t offset = page->m_occupied.find_first();
if (offset != PAGE_SIZE)
{
m_pageIndex = p_pageIndex;
m_page = page;
m_offset = offset;
m_current = m_map->m_pages[p_pageIndex]->SlotAt(offset);
m_current = page->SlotAt(offset);
return;
}
}
m_pageIndex = m_map->m_pages.size();
m_page = nullptr;
m_offset = 0;
m_current = nullptr;
}
@@ -640,12 +649,14 @@ class StableSlotMap: public SlotMapBase
{
for (;;)
{
const std::size_t offset = m_map->m_pages[p_pageIndex]->m_occupied.find_last();
const Page* const page = m_map->m_pages[p_pageIndex].get();
const std::size_t offset = page->m_occupied.find_last();
if (offset != PAGE_SIZE)
{
m_pageIndex = p_pageIndex;
m_page = page;
m_offset = offset;
m_current = m_map->m_pages[p_pageIndex]->SlotAt(offset);
m_current = page->SlotAt(offset);
return;
}
@@ -659,11 +670,11 @@ class StableSlotMap: public SlotMapBase
void Advance()
{
const std::size_t offset = m_map->m_pages[m_pageIndex]->m_occupied.find_next(m_offset);
const std::size_t offset = m_page->m_occupied.find_next(m_offset);
if (offset != PAGE_SIZE)
{
m_offset = offset;
m_current = m_map->m_pages[m_pageIndex]->SlotAt(offset);
m_current = m_page->SlotAt(offset);
return;
}
@@ -678,11 +689,11 @@ class StableSlotMap: public SlotMapBase
return;
}
const std::size_t offset = m_map->m_pages[m_pageIndex]->m_occupied.find_prev(m_offset);
const std::size_t offset = m_page->m_occupied.find_prev(m_offset);
if (offset != PAGE_SIZE)
{
m_offset = offset;
m_current = m_map->m_pages[m_pageIndex]->SlotAt(offset);
m_current = m_page->SlotAt(offset);
return;
}
@@ -694,6 +705,7 @@ class StableSlotMap: public SlotMapBase
}
const StableSlotMap* m_map = nullptr;
const Page* m_page = nullptr;
std::size_t m_pageIndex = 0;
std::size_t m_offset = 0;
const TYPE* m_current = nullptr;