summaryrefslogtreecommitdiffstatshomepage
path: root/src/lib/netlist/plib/pmempool.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/lib/netlist/plib/pmempool.h')
-rw-r--r--src/lib/netlist/plib/pmempool.h20
1 files changed, 10 insertions, 10 deletions
diff --git a/src/lib/netlist/plib/pmempool.h b/src/lib/netlist/plib/pmempool.h
index 15948c88ea0..7dff02cf573 100644
--- a/src/lib/netlist/plib/pmempool.h
+++ b/src/lib/netlist/plib/pmempool.h
@@ -32,19 +32,19 @@ namespace plib {
private:
struct block
{
- block(mempool *mp, std::size_t min_bytes)
+ block(mempool &mp, std::size_t min_bytes)
: m_num_alloc(0)
, m_cur(0)
, m_data(nullptr)
, m_mempool(mp)
{
- min_bytes = std::max(mp->m_min_alloc, min_bytes);
+ min_bytes = std::max(mp.m_min_alloc, min_bytes);
m_free = min_bytes;
- std::size_t alloc_bytes = (min_bytes + mp->m_min_align); // - 1); // & ~(mp->m_min_align - 1);
+ std::size_t alloc_bytes = (min_bytes + mp.m_min_align); // - 1); // & ~(mp.m_min_align - 1);
//m_data_allocated = ::operator new(alloc_bytes);
m_data_allocated = new char[alloc_bytes];
void *r = m_data_allocated;
- std::align(mp->m_min_align, min_bytes, r, alloc_bytes);
+ std::align(mp.m_min_align, min_bytes, r, alloc_bytes);
m_data = reinterpret_cast<char *>(r);
}
~block()
@@ -63,7 +63,7 @@ namespace plib {
std::size_t m_cur;
char *m_data;
char *m_data_allocated;
- mempool *m_mempool;
+ mempool &m_mempool;
};
struct info
@@ -79,7 +79,7 @@ namespace plib {
block * new_block(std::size_t min_bytes)
{
- auto *b = plib::pnew<block>(this, min_bytes);
+ auto *b = plib::pnew<block>(*this, min_bytes);
m_blocks.push_back(b);
return b;
}
@@ -170,12 +170,12 @@ namespace plib {
//printf("Freeing in block %p %lu\n", b, b->m_num_alloc);
if (b->m_num_alloc == 0)
{
- mempool *mp = b->m_mempool;
- auto itb = std::find(mp->m_blocks.begin(), mp->m_blocks.end(), b);
- if (itb == mp->m_blocks.end())
+ mempool &mp = b->m_mempool;
+ auto itb = std::find(mp.m_blocks.begin(), mp.m_blocks.end(), b);
+ if (itb == mp.m_blocks.end())
plib::terminate("mempool::free - block not found\n");
- mp->m_blocks.erase(itb);
+ mp.m_blocks.erase(itb);
plib::pdelete(b);
}
sinfo().erase(it);