Allow reallocating when we use external arena.

Internal arena do not need reallocate as it is consecutive memory
This commit is contained in:
2026-02-13 22:02:11 -05:00
parent 6a6f34516c
commit c6552d2def

View File

@@ -12,6 +12,7 @@ namespace Juliet
void Create()
{
Assert(!Arena);
static_assert(AllowRealloc == false);
DataFirst = DataLast = nullptr;
Count = 0;
@@ -25,7 +26,6 @@ namespace Juliet
void Create(NonNullPtr<Arena> arena)
{
Assert(!Arena);
static_assert(AllowRealloc == false);
DataFirst = DataLast = nullptr;
Count = 0;
@@ -72,6 +72,12 @@ namespace Juliet
{
Assert(Arena);
if (Count + 1 == Capacity)
{
Assert(AllowRealloc);
Reserve(Capacity * 2);
}
Type* entry = Data + Count;
*entry = value;
@@ -87,6 +93,12 @@ namespace Juliet
{
Assert(Arena);
if (Count + 1 == Capacity)
{
Assert(AllowRealloc);
Reserve(Capacity * 2);
}
Type* entry = Data + Count;
*entry = std::move(value);