From 1e40d95e8b47d834d1ede706921dc19850aaaff2 Mon Sep 17 00:00:00 2001 From: couriersud Date: Thu, 21 Jul 2016 11:05:55 +0200 Subject: Netlist updates: - Removed trampolines (OUTLOGIC, INPLOGIC and friends). - Started using doxygen comment and documentation style. Added doxygen files to documentation folder. - Refactored code triggered by doxygen output. - Moved internal and support classes into namespace detail. - Use an anordered map in parser. - -Wconversion fixes - All done now. - Fixed -Wold-style-cast warnings in netlist code. - Added iterators to pstring. - Moved two macros, added more RAII and improved exceptions. Fixed some bugs in parser code. - Fixed a number of bugs in parser code and exception handling. [Couriersud] --- src/lib/netlist/plib/palloc.cpp | 19 +++++++++---------- 1 file changed, 9 insertions(+), 10 deletions(-) (limited to 'src/lib/netlist/plib/palloc.cpp') diff --git a/src/lib/netlist/plib/palloc.cpp b/src/lib/netlist/plib/palloc.cpp index ef9e42dcba5..c89c2ed7e63 100644 --- a/src/lib/netlist/plib/palloc.cpp +++ b/src/lib/netlist/plib/palloc.cpp @@ -12,7 +12,6 @@ #include "pfmtlog.h" namespace plib { - //============================================================ // Exceptions //============================================================ @@ -56,7 +55,7 @@ out_of_mem_e::out_of_mem_e(const pstring &location) // Memory pool //============================================================ -mempool::mempool(int min_alloc, int min_align) +mempool::mempool(size_t min_alloc, size_t min_align) : m_min_alloc(min_alloc), m_min_align(min_align) { } @@ -71,7 +70,7 @@ mempool::~mempool() m_blocks.clear(); } -int mempool::new_block() +size_t mempool::new_block() { block b; b.data = new char[m_min_alloc]; @@ -93,21 +92,21 @@ void *mempool::alloc(size_t size) { b.m_free -= rs; b.m_num_alloc++; - info *i = (info *) b.cur_ptr; + auto i = reinterpret_cast(b.cur_ptr); i->m_block = bn; - void *ret = (void *) (b.cur_ptr + sizeof(info)); + auto ret = reinterpret_cast(b.cur_ptr + sizeof(info)); b.cur_ptr += rs; return ret; } } { - int bn = new_block(); + size_t bn = new_block(); auto &b = m_blocks[bn]; b.m_num_alloc = 1; b.m_free = m_min_alloc - rs; - info *i = (info *) b.cur_ptr; + auto i = reinterpret_cast(b.cur_ptr); i->m_block = bn; - void *ret = (void *) (b.cur_ptr + sizeof(info)); + auto ret = reinterpret_cast(b.cur_ptr + sizeof(info)); b.cur_ptr += rs; return ret; } @@ -115,9 +114,9 @@ void *mempool::alloc(size_t size) void mempool::free(void *ptr) { - char *p = (char *) ptr; + auto p = reinterpret_cast(ptr); - info *i = (info *) (p - sizeof(info)); + auto i = reinterpret_cast(p - sizeof(info)); block *b = &m_blocks[i->m_block]; if (b->m_num_alloc == 0) fprintf(stderr, "Argh .. double free\n"); -- cgit v1.2.3-70-g09d2