13template<
typename T,
int32 NumElementsPerChunk = 64>
19 FChunk*
Next =
nullptr;
23 T Items[NumElementsPerChunk];
29 FChunk* Head =
nullptr;
31 static void DeleteChunks(FChunk* Head)
33 for (FChunk* Chunk = Head; Chunk;)
35 FChunk* NextChunk = Chunk->Next;
57 if (Head !=
nullptr && Head->NumItems < NumElementsPerChunk)
59 Head->Items[Head->NumItems++] = Item;
70 if (Head !=
nullptr &&
OldHead != Head && Head->NumItems < NumElementsPerChunk)
72 Head->Items[Head->NumItems++] = Item;
81 Head->Items[Head->NumItems++] = Item;
92 bool bIsEmpty = Head ==
nullptr;
119 for (FChunk* Chunk =
Current; Chunk; Chunk = Chunk->Next)
121 OutArray.Append(Chunk->Items, Chunk->NumItems);
UE_FORCEINLINE_HINT TSharedRef< CastToType, Mode > StaticCastSharedRef(TSharedRef< CastFromType, Mode > const &InSharedRef)
Definition SharedPointer.h:127
Definition ExpandingChunkedList.h:15
FORCEINLINE void PopAllAndEmpty(TArray< T > &OutArray)
Definition ExpandingChunkedList.h:112
~TExpandingChunkedList()
Definition ExpandingChunkedList.h:43
void Push(T Item)
Definition ExpandingChunkedList.h:51
FORCEINLINE bool IsEmpty() const
Definition ExpandingChunkedList.h:89
void Empty()
Definition ExpandingChunkedList.h:100
void Unlock()
Definition SpinLock.h:42
void Lock()
Definition SpinLock.h:21
static FORCENOINLINE CORE_API void Free(void *Original)
Definition UnrealMemory.cpp:685