From 41c8a9f6fa49b10c021196463adc654ecce25790 Mon Sep 17 00:00:00 2001 From: couriersud Date: Sat, 5 Mar 2016 17:11:04 +0100 Subject: netlist updates: - First steps to move towards c++11. - Base plist on std::vector - Replace pstack with std::stack - Remove pnamed_list - use c++ "for each" in a number of places - Fixed two "time bombs" [couriersud] --- src/lib/netlist/plib/pstring.cpp | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) (limited to 'src/lib/netlist/plib/pstring.cpp') diff --git a/src/lib/netlist/plib/pstring.cpp b/src/lib/netlist/plib/pstring.cpp index 8ad86f41f3d..2acf1d789b1 100644 --- a/src/lib/netlist/plib/pstring.cpp +++ b/src/lib/netlist/plib/pstring.cpp @@ -314,7 +314,7 @@ long pstring_t::as_long(bool *error) const #if 1 -static pstack_t *stk = NULL; +static std::stack *stk = NULL; static inline unsigned countleadbits(unsigned x) { @@ -373,7 +373,7 @@ template pstr_t *pstring_t::salloc(int n) { if (stk == NULL) - stk = palloc_array(pstack_t, 17); + stk = palloc_array(std::stack, 17); pstr_t *p; unsigned sn= ((32 - countleadbits(n)) + 1) / 2; unsigned size = sizeof(pstr_t) + ((UINT64) 1<<(sn * 2)) + 1; @@ -381,7 +381,8 @@ pstr_t *pstring_t::salloc(int n) p = (pstr_t *) palloc_array(char, size); else { - p = stk[sn].pop(); + p = stk[sn].top(); + stk[sn].pop(); } // str_t *p = (str_t *) _mm_malloc(size, 8); @@ -395,8 +396,11 @@ void pstring_t::resetmem() { for (unsigned i=0; i<=16; i++) { - for (; stk[i].count() > 0; ) - pfree_array(stk[i].pop()); + for (; stk[i].size() > 0; ) + { + pfree_array(stk[i].top()); + stk[i].pop(); + } } pfree_array(stk); stk = NULL; -- cgit v1.2.3-70-g09d2