15#define ECS_GLOBAL_MEMORY_CAPACITY 134217728
21namespace ECS {
namespace Memory {
62 inline void*
Allocate(
size_t memSize,
const char* user =
nullptr)
64 LOG_DEBUG(
"{} allocated {} bytes of global memory.", user !=
nullptr ? user :
"Unknown", memSize);
67 this->m_PendingMemory.push_back(std::pair<const char*, void*>(user, pMemory));
72 inline void Free(
void* pMem)
74 if (pMem == this->m_PendingMemory.back().second)
76 this->m_MemoryAllocator->
free(pMem);
77 this->m_PendingMemory.pop_back();
85 for (
auto it : this->m_FreedMemory)
87 if (it == this->m_PendingMemory.back().second)
89 this->m_MemoryAllocator->
free(pMem);
90 this->m_PendingMemory.pop_back();
91 this->m_FreedMemory.remove(it);
102 this->m_FreedMemory.push_back(pMem);
#define ECS_GLOBAL_MEMORY_CAPACITY
#define LOG_DEBUG(format,...)
virtual void free(void *p) override
virtual void * allocate(size_t size, u8 alignment) override
void * Allocate(size_t memSize, const char *user=nullptr)
MemoryManager(const MemoryManager &)=delete
static constexpr size_t MEMORY_CAPACITY
std::vector< std::pair< const char *, void * > > m_PendingMemory
std::list< void * > m_FreedMemory
StackAllocator * m_MemoryAllocator
MemoryManager & operator=(MemoryManager &)=delete