From bdd953076ace99b74f68b3a960dacccf4c02faaf Mon Sep 17 00:00:00 2001 From: JoelKatz Date: Tue, 15 Jan 2013 10:21:16 -0800 Subject: [PATCH] Avoid a needless allocate/copy/free in addRootNode. --- src/cpp/ripple/SHAMapSync.cpp | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) diff --git a/src/cpp/ripple/SHAMapSync.cpp b/src/cpp/ripple/SHAMapSync.cpp index 7b16fbeee3..5d99399b0f 100644 --- a/src/cpp/ripple/SHAMapSync.cpp +++ b/src/cpp/ripple/SHAMapSync.cpp @@ -193,7 +193,7 @@ SMAddNode SHAMap::addRootNode(const std::vector& rootNode, SHANod return SMAddNode::okay(); } - SHAMapTreeNode::pointer node = boost::make_shared(SHAMapNode(), rootNode, 0, format, uint256()); + SHAMapTreeNode::pointer node = boost::make_shared(SHAMapNode(), rootNode, mSeq, format, uint256()); if (!node) return SMAddNode::invalid(); @@ -201,8 +201,6 @@ SMAddNode SHAMap::addRootNode(const std::vector& rootNode, SHANod node->dump(); #endif - returnNode(root, true); - root = node; mTNByID[*root] = root; if (root->getNodeHash().isZero()) @@ -233,11 +231,10 @@ SMAddNode SHAMap::addRootNode(const uint256& hash, const std::vector(SHAMapNode(), rootNode, 0, format, uint256()); + SHAMapTreeNode::pointer node = boost::make_shared(SHAMapNode(), rootNode, mSeq, format, uint256()); if (!node || node->getNodeHash() != hash) return SMAddNode::invalid(); - returnNode(root, true); root = node; mTNByID[*root] = root; if (root->getNodeHash().isZero()) @@ -305,7 +302,7 @@ SMAddNode SHAMap::addKnownNode(const SHAMapNode& node, const std::vectorgetChildHash(branch); - if (!hash) + if (hash.isZero()) { cLog(lsWARNING) << "AddKnownNode for empty branch"; return SMAddNode::invalid(); @@ -351,6 +348,7 @@ SMAddNode SHAMap::addKnownNode(const SHAMapNode& node, const std::vectorisFullBelow()) clearSynching(); + return SMAddNode::useful(); }