Reallocate-Arena #1
@@ -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);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user