diff options
author | Thomas Grill <xovo@users.sourceforge.net> | 2005-12-14 01:53:02 +0000 |
---|---|---|
committer | Thomas Grill <xovo@users.sourceforge.net> | 2005-12-14 01:53:02 +0000 |
commit | 59ad9e9cf0a72b31f8bfd371cb97536ed4d4fe61 (patch) | |
tree | d424023df43b0a5649bf93b025338f8b76bce244 /externals/grill/pool/source/pool.cpp | |
parent | de76301bb4d17339e4eb6eb31abf53ede4734e1e (diff) |
fixed double-free on clearing values and dirs
reintroduced missing help message
fixed clearing values and dirs, e.g. with messages clrall and clrrec
more symbol escaping
rename help file
svn path=/trunk/; revision=4208
Diffstat (limited to 'externals/grill/pool/source/pool.cpp')
-rw-r--r-- | externals/grill/pool/source/pool.cpp | 9 |
1 files changed, 7 insertions, 2 deletions
diff --git a/externals/grill/pool/source/pool.cpp b/externals/grill/pool/source/pool.cpp index 7632998d..1de7994e 100644 --- a/externals/grill/pool/source/pool.cpp +++ b/externals/grill/pool/source/pool.cpp @@ -64,7 +64,9 @@ poolval::poolval(const A &k,AtomList *d): poolval::~poolval() { if(data) delete data; - if(nxt) delete nxt; + +// if(nxt) delete nxt; + FLEXT_ASSERT(nxt == NULL); } poolval &poolval::Set(AtomList *d) @@ -93,7 +95,8 @@ pooldir::~pooldir() { Reset(false); - if(nxt) delete nxt; +// if(nxt) delete nxt; + FLEXT_ASSERT(nxt == NULL); } V pooldir::Clear(BL rec,BL dironly) @@ -104,6 +107,7 @@ V pooldir::Clear(BL rec,BL dironly) if(d) { do { d1 = d->nxt; + d->nxt = NULL; delete d; } while((d = d1) != NULL); dirs[i].d = NULL; @@ -117,6 +121,7 @@ V pooldir::Clear(BL rec,BL dironly) if(v) { do { v1 = v->nxt; + v->nxt = NULL; delete v; } while((v = v1) != NULL); vals[i].v = NULL; |