19 static_assert(
sizeof(
Block) == 0x10);
44 std::size_t
Size(
void const* a_mem)
const override {
return *
static_cast<const std::size_t*
>(a_mem) & ~(std::size_t{ 3 } << 62); }
50 void*
Allocate(std::size_t a_size, std::size_t a_alignment);
69 static_assert(
sizeof(ScrapHeap) == 0x90);
#define MEM_RELEASE
Definition WinAPI.h:577
Definition IMemoryStore.h:8
~ScrapHeap() override
Definition ScrapHeap.h:41
void * Allocate(std::size_t a_size, std::size_t a_alignment)
std::size_t Size(void const *a_mem) const override
Definition ScrapHeap.h:44
void Deallocate(void *a_mem)
bool ContainsBlockImpl(const void *a_block) const override
Definition ScrapHeap.h:46
void * AllocateAlignImpl(std::size_t a_size, std::uint32_t a_alignment) override
Definition ScrapHeap.h:47
std::uint32_t pmpBarrier
Definition ScrapHeap.h:67
std::size_t reserveSize
Definition ScrapHeap.h:60
std::uint32_t freeSmallBlocks
Definition ScrapHeap.h:65
Block * lastBlock
Definition ScrapHeap.h:56
std::uint32_t keepPagesRequest
Definition ScrapHeap.h:63
static constexpr auto RTTI
Definition ScrapHeap.h:10
std::size_t totalAllocated
Definition ScrapHeap.h:62
FreeTreeNode * freeList
Definition ScrapHeap.h:55
std::uint32_t totalAllocatedBlocks
Definition ScrapHeap.h:66
std::uint32_t totalFreeBlocks
Definition ScrapHeap.h:64
void * baseAddress
Definition ScrapHeap.h:57
std::size_t minCommit
Definition ScrapHeap.h:61
void * commitEnd
Definition ScrapHeap.h:59
void GetMemoryStats(MemoryStats *) override
Definition ScrapHeap.h:45
void * endAddress
Definition ScrapHeap.h:58
FreeBlock * smallBlocks[6]
Definition ScrapHeap.h:54
void DeallocateAlignImpl(void *&a_block) override
Definition ScrapHeap.h:48
Definition AbsorbEffect.h:6
constexpr REL::VariantID RTTI_ScrapHeap(690278, 398133, 0x1f5f460)
bool VirtualFree(void *a_address, std::size_t a_size, std::uint32_t a_freeType) noexcept
Definition IMemoryStoreBase.h:6
Definition ScrapHeap.h:13
Block * prev
Definition ScrapHeap.h:17
std::size_t sizeFlags
Definition ScrapHeap.h:16
Definition ScrapHeap.h:22
FreeBlock * right
Definition ScrapHeap.h:26
FreeBlock * left
Definition ScrapHeap.h:25
Definition ScrapHeap.h:31
FreeTreeNode * leftNode
Definition ScrapHeap.h:35
std::size_t parentAndBlack
Definition ScrapHeap.h:37
FreeTreeNode * rightNode
Definition ScrapHeap.h:36
FreeTreeNode ** root
Definition ScrapHeap.h:34