summaryrefslogtreecommitdiffstatshomepage
path: root/src/lib/netlist/plib/pstring.cpp
diff options
context:
space:
mode:
author therealmogminer@gmail.com <therealmogminer@gmail.com>2016-03-21 08:27:06 +0100
committer therealmogminer@gmail.com <therealmogminer@gmail.com>2016-03-21 08:27:06 +0100
commita99df788017c2bf5a56034d4f9152bf8ab95a168 (patch)
tree3beec27b413c75b8f9f88199519e45fd07959bf8 /src/lib/netlist/plib/pstring.cpp
parentb224d9a77ad6483daf2b60b75dbdc323a3bcd4b0 (diff)
parent3afd990226a2c647290579bebb5537bd0fd3faac (diff)
Merge with master
Diffstat (limited to 'src/lib/netlist/plib/pstring.cpp')
-rw-r--r--src/lib/netlist/plib/pstring.cpp14
1 files changed, 9 insertions, 5 deletions
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<F>::as_long(bool *error) const
#if 1
-static pstack_t<pstr_t *> *stk = NULL;
+static std::stack<pstr_t *> *stk = NULL;
static inline unsigned countleadbits(unsigned x)
{
@@ -373,7 +373,7 @@ template<typename F>
pstr_t *pstring_t<F>::salloc(int n)
{
if (stk == NULL)
- stk = palloc_array(pstack_t<pstr_t *>, 17);
+ stk = palloc_array(std::stack<pstr_t *>, 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<F>::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<F>::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;