diff --git a/mozilla/htmlparser/src/nsAVLTree.cpp b/mozilla/htmlparser/src/nsAVLTree.cpp index 73bf59ce843..52c380d3611 100644 --- a/mozilla/htmlparser/src/nsAVLTree.cpp +++ b/mozilla/htmlparser/src/nsAVLTree.cpp @@ -59,6 +59,14 @@ nsAVLTree::nsAVLTree(nsAVLNodeComparitor& aComparitor, } +static void +avlDeleteTree(nsAVLNode* aNode){ + if (aNode) { + avlDeleteTree(aNode->mLeft); + avlDeleteTree(aNode->mRight); + delete aNode; + } +} /** * @@ -70,6 +78,7 @@ nsAVLTree::~nsAVLTree(){ if (mDeallocator) { ForEachDepthFirst(*mDeallocator); } + avlDeleteTree(mRoot); } diff --git a/mozilla/parser/htmlparser/src/nsAVLTree.cpp b/mozilla/parser/htmlparser/src/nsAVLTree.cpp index 73bf59ce843..52c380d3611 100644 --- a/mozilla/parser/htmlparser/src/nsAVLTree.cpp +++ b/mozilla/parser/htmlparser/src/nsAVLTree.cpp @@ -59,6 +59,14 @@ nsAVLTree::nsAVLTree(nsAVLNodeComparitor& aComparitor, } +static void +avlDeleteTree(nsAVLNode* aNode){ + if (aNode) { + avlDeleteTree(aNode->mLeft); + avlDeleteTree(aNode->mRight); + delete aNode; + } +} /** * @@ -70,6 +78,7 @@ nsAVLTree::~nsAVLTree(){ if (mDeallocator) { ForEachDepthFirst(*mDeallocator); } + avlDeleteTree(mRoot); } diff --git a/mozilla/xpcom/ds/nsAVLTree.cpp b/mozilla/xpcom/ds/nsAVLTree.cpp index 73bf59ce843..52c380d3611 100644 --- a/mozilla/xpcom/ds/nsAVLTree.cpp +++ b/mozilla/xpcom/ds/nsAVLTree.cpp @@ -59,6 +59,14 @@ nsAVLTree::nsAVLTree(nsAVLNodeComparitor& aComparitor, } +static void +avlDeleteTree(nsAVLNode* aNode){ + if (aNode) { + avlDeleteTree(aNode->mLeft); + avlDeleteTree(aNode->mRight); + delete aNode; + } +} /** * @@ -70,6 +78,7 @@ nsAVLTree::~nsAVLTree(){ if (mDeallocator) { ForEachDepthFirst(*mDeallocator); } + avlDeleteTree(mRoot); }