7 #include <boost/assert.hpp> 22 if (!m_FreePools.empty())
24 Pool* res = m_FreePools.back();
25 m_FreePools.pop_back();
31 m_Pools.push_front(
Pool(numBytes));
32 return &m_Pools.front();
39 m_FreePools.push_back(pool);
49 for (
Pool &pool: m_Pools)
57 for (
Pool &pool: m_Pools)
78 BOOST_ASSERT_MSG(m_Pointer,
"RefMemoryManager::Pool::GetPointer() called when memory not acquired");
84 BOOST_ASSERT_MSG(!m_Pointer,
"RefMemoryManager::Pool::Reserve() cannot be called after memory acquired");
85 m_Size = std::max(m_Size, numBytes);
90 BOOST_ASSERT_MSG(!m_Pointer,
"RefMemoryManager::Pool::Acquire() called when memory already acquired");
91 m_Pointer = ::operator
new(size_t(m_Size));
96 BOOST_ASSERT_MSG(m_Pointer,
"RefMemoryManager::Pool::Release() called when memory not acquired");
97 ::operator
delete(m_Pointer);
RefMemoryManager::Pool Pool
Copyright (c) 2020 ARM Limited.
void Allocate(Pool *pool)
Pool * Manage(unsigned int numBytes)
void Reserve(unsigned int numBytes)
virtual ~RefMemoryManager()
Pool(unsigned int numBytes)
void * GetPointer(Pool *pool)