From bdd733bc0be90f8be9d052f30d8ad556d0a9ffc7 Mon Sep 17 00:00:00 2001 From: Howard Hinnant Date: Wed, 9 Dec 2015 17:14:40 -0500 Subject: [PATCH] Simplify initial node-finding loop in SHAMap::upper_bound --- src/ripple/shamap/impl/SHAMap.cpp | 9 ++------- 1 file changed, 2 insertions(+), 7 deletions(-) diff --git a/src/ripple/shamap/impl/SHAMap.cpp b/src/ripple/shamap/impl/SHAMap.cpp index 6d0ac86791..ad81a58b3d 100644 --- a/src/ripple/shamap/impl/SHAMap.cpp +++ b/src/ripple/shamap/impl/SHAMap.cpp @@ -575,22 +575,17 @@ SHAMap::upper_bound(uint256 const& id) const NodeStack stack; auto node = root_.get(); auto nodeID = SHAMapNodeID{}; - auto foundLeaf = true; + stack.push ({node, nodeID}); while (!node->isLeaf()) { - stack.push ({node, nodeID}); auto branch = nodeID.selectBranch(id); auto inner = static_cast(node); if (inner->isEmptyBranch(branch)) - { - foundLeaf = false; break; - } node = descendThrow(inner, branch); nodeID = nodeID.getChildNodeID(branch); + stack.push ({node, nodeID}); } - if (foundLeaf) - stack.push({node, nodeID}); while (!stack.empty()) { std::tie(node, nodeID) = stack.top();