9 class HeapBlockFreeHead;
31 virtual std::size_t
CreateMorePages(
void* a_memory, std::size_t a_currentSize, std::size_t a_requestedBytes);
32 virtual std::size_t
CleanExtraPages(
void* a_memory, std::size_t a_currentSize, std::size_t a_freeBytes);
Definition: AbstractHeap.h:12
bool supportsSwapping
Definition: AbstractHeap.h:56
const char * name
Definition: AbstractHeap.h:38
std::size_t blockMemAllocated
Definition: AbstractHeap.h:48
std::size_t memAllocatedHigh
Definition: AbstractHeap.h:47
std::size_t minFreeBlockSize
Definition: AbstractHeap.h:39
void * TryAllocateImpl(std::size_t a_size, std::uint32_t a_alignment) override
BSCriticalSection criticalSection
Definition: AbstractHeap.h:37
std::uint32_t pad08C
Definition: AbstractHeap.h:51
std::uint32_t pageSizeFlag
Definition: AbstractHeap.h:41
HeapBlock * blockHead
Definition: AbstractHeap.h:52
static constexpr auto RTTI
Definition: AbstractHeap.h:14
bool PointerInHeap(const void *a_pointer) const override
virtual void DecommitPages(HeapBlock *a_block)
virtual void DoHeapFree(void *a_ptr)=0
HeapBlock * blockTail
Definition: AbstractHeap.h:53
std::size_t initialSize
Definition: AbstractHeap.h:43
const char * GetName() const override
std::int32_t numBlocks
Definition: AbstractHeap.h:50
std::size_t memAllocated
Definition: AbstractHeap.h:46
virtual std::size_t CleanExtraPages(void *a_memory, std::size_t a_currentSize, std::size_t a_freeBytes)
std::uint32_t pageSize
Definition: AbstractHeap.h:40
std::int32_t numFreeBlocks
Definition: AbstractHeap.h:54
std::size_t memHeapSize
Definition: AbstractHeap.h:42
bool allowDecommits
Definition: AbstractHeap.h:55
virtual void CommitPages(HeapBlock *, std::size_t)
std::size_t currentSize
Definition: AbstractHeap.h:44
void * AllocateAlignImpl(std::size_t a_size, std::uint32_t a_alignment) override
std::size_t wastedMemory
Definition: AbstractHeap.h:45
char * memHeap
Definition: AbstractHeap.h:49
HeapBlock * smallFreeLists[32]
Definition: AbstractHeap.h:58
HeapBlockFreeHead * largeFreeTrees[32]
Definition: AbstractHeap.h:59
virtual std::size_t CreateMorePages(void *a_memory, std::size_t a_currentSize, std::size_t a_requestedBytes)
virtual void * DoHeapAllocation(std::size_t a_size, std::size_t a_initialSize)=0
std::uint16_t pad0A0
Definition: AbstractHeap.h:57
void GetHeapStats(HeapStats *a_stats, bool a_fullBlockInfo) override
bool ShouldTrySmallBlockPools(std::size_t a_size, MEM_CONTEXT a_context) override
std::uint32_t GetPageSize() const override
void GetMemoryStats(MemoryStats *a_stats) override
Definition: HeapBlockFreeHead.h:8
Definition: HeapBlock.h:6
Definition: IMemoryHeap.h:31
Definition: AbsorbEffect.h:6
constexpr REL::VariantID RTTI_AbstractHeap(690286, 398141, 0x1f5f5c0)
Definition: IMemoryHeap.h:10
Definition: IMemoryStoreBase.h:6