From: Mukund Sivaraman Date: Fri, 6 Sep 2013 06:06:44 +0000 (+0530) Subject: [2750] Handle root of forest case too X-Git-Tag: bind10-1.2.0beta1-release~193^2~4^2~8 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=d79db92249d8e529bd8346cffbaf5c19680923f5;p=thirdparty%2Fkea.git [2750] Handle root of forest case too --- diff --git a/src/lib/datasrc/memory/domaintree.h b/src/lib/datasrc/memory/domaintree.h index af080e288f..f7ab4ea4f7 100644 --- a/src/lib/datasrc/memory/domaintree.h +++ b/src/lib/datasrc/memory/domaintree.h @@ -2322,7 +2322,7 @@ DomainTree::remove(util::MemorySegment& mem_sgmt, DomainTreeNode* node, // Even if node is not a leaf node, we don't always do an // exchange() with another node, so we have to set the child's // FLAG_SUBTREE_ROOT explicitly. - if (child->getParent() && + if ((!child->getParent()) || (child->getParent()->getDown() == child)) { child->setSubTreeRoot(node->isSubTreeRoot()); @@ -2953,8 +2953,8 @@ DomainTree::checkPropertiesHelper(const DomainTreeNode* node) const { // If node is assigned to the down_ pointer of its parent, it is a // subtree root and must have the flag set. - if (node->getParent() && - (node->getParent()->getDown() == node) && + if (((!node->getParent()) || + (node->getParent()->getDown() == node)) && (!node->isSubTreeRoot())) { return (false);