summaryrefslogtreecommitdiff
path: root/meta2/collection.h
diff options
context:
space:
mode:
Diffstat (limited to 'meta2/collection.h')
-rw-r--r--meta2/collection.h8
1 files changed, 3 insertions, 5 deletions
diff --git a/meta2/collection.h b/meta2/collection.h
index 9067158..2c69216 100644
--- a/meta2/collection.h
+++ b/meta2/collection.h
@@ -321,7 +321,7 @@ public:
virtual ~TreeNode() {
if(parent) {
if(parent->left == this) parent->left = 0;
- else parent->right = 0;
+ if(parent->right == this)parent->right = 0;
}
}
};
@@ -340,20 +340,18 @@ protected:
return n;
} else if(n->right) {
if(n->parent) {
- if(n->parent->left = n) n->parent->left = n->right;
+ if(n->parent->left == n) n->parent->left = n->right;
else n->parent->right = n->right;
} else
root = n->right;
n->right->parent = n->parent;
- n->parent = 0; // don't mess with pointers
} else if(n->left) {
if(n->parent) {
- if(n->parent->left = n) n->parent->left = n->left;
+ if(n->parent->left == n) n->parent->left = n->left;
else n->parent->right = n->left;
} else
root = n->left;
n->left->parent = n->parent;
- n->parent = 0; // don't mess with pointers
} else {
if(n == root) root = 0;
}