From: Stephan Bosch Date: Mon, 30 Sep 2019 08:30:25 +0000 (+0200) Subject: iputils.hh: NetmaskTree: Drop the internal std::set. X-Git-Tag: auth-4.3.0-beta2~20^2~3 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=dccd4976103d3b15228d8847465a55763e342af3;p=thirdparty%2Fpdns.git iputils.hh: NetmaskTree: Drop the internal std::set. It is now superfluous. --- diff --git a/pdns/iputils.hh b/pdns/iputils.hh index a4409c6611..d5eb3141f7 100644 --- a/pdns/iputils.hh +++ b/pdns/iputils.hh @@ -908,10 +908,10 @@ public: }; public: - NetmaskTree() noexcept: d_root(new TreeNode()), d_left(nullptr) { + NetmaskTree() noexcept: d_root(new TreeNode()), d_left(nullptr), d_size(0) { } - NetmaskTree(const NetmaskTree& rhs): d_root(new TreeNode()), d_left(nullptr) { + NetmaskTree(const NetmaskTree& rhs): d_root(new TreeNode()), d_left(nullptr), d_size(0) { copyTree(rhs); } @@ -952,7 +952,7 @@ public: node->parent = d_root.get(); d_root->left = unique_ptr(node); - _nodes.insert(node->node.get()); + d_size++; d_left = node; return *node->node; } @@ -964,7 +964,7 @@ public: node->parent = d_root.get(); d_root->right = unique_ptr(node); - _nodes.insert(node->node.get()); + d_size++; if (!d_root->left) d_left = node; return *node->node; @@ -1035,8 +1035,8 @@ public: node_type* value = node->node.get(); if (!node->assigned) { - // only insert value into set if not assigned before - _nodes.insert(value); + // only increment size if not assigned before + d_size++; // update the pointer to the left-most tree node if (is_left) d_left = node; @@ -1168,7 +1168,11 @@ public: } } if (node) { - _nodes.erase(node->node.get()); + if (d_size == 0) { + throw std::logic_error( + "NetmaskTree::erase(): size of tree is zero before erase"); + } + d_size--; node->assigned = false; node->node->second = value_type(); @@ -1185,12 +1189,12 @@ public: // d_root; // _nodes; //