diff options
author | Tim King <taking@cs.nyu.edu> | 2010-03-23 19:41:49 +0000 |
---|---|---|
committer | Tim King <taking@cs.nyu.edu> | 2010-03-23 19:41:49 +0000 |
commit | e11bce2790fa9e517e08ae5d3c477da651db3630 (patch) | |
tree | ffc4bb7cab3a6887c83fd3817c4cd79503d53a2c /src/context/cdlist.h | |
parent | 9576517676138a8ca2887a967f1b056662ef6754 (diff) |
Fixed some memory cleanup and destruction issues with ContextObj, ECData, CDList, and CDMap. Added the d_underTheShotgun field to NodeManager to keep track of which NodeValue is currently being deleted. If a Node or TNode has this node value, it can always be deleted. This avoids the need for introducing SoftNodes. Currently passes Debug and Production make check
Diffstat (limited to 'src/context/cdlist.h')
-rw-r--r-- | src/context/cdlist.h | 10 |
1 files changed, 8 insertions, 2 deletions
diff --git a/src/context/cdlist.h b/src/context/cdlist.h index e3c7e155c..492dc7939 100644 --- a/src/context/cdlist.h +++ b/src/context/cdlist.h @@ -138,9 +138,15 @@ public: * Destructor: delete the list */ ~CDList() throw(AssertionException) { - T* list = d_list; destroy(); - free(list); + + if(d_callDestructor) { + for(unsigned i = 0; i < d_size; ++i) { + d_list[i].~T(); + } + } + + free(d_list); } /** |