mirror of
https://github.com/XRPLF/rippled.git
synced 2025-12-06 17:27:55 +00:00
Avoid a needless allocate/copy/free in addRootNode.
This commit is contained in:
@@ -193,7 +193,7 @@ SMAddNode SHAMap::addRootNode(const std::vector<unsigned char>& rootNode, SHANod
|
|||||||
return SMAddNode::okay();
|
return SMAddNode::okay();
|
||||||
}
|
}
|
||||||
|
|
||||||
SHAMapTreeNode::pointer node = boost::make_shared<SHAMapTreeNode>(SHAMapNode(), rootNode, 0, format, uint256());
|
SHAMapTreeNode::pointer node = boost::make_shared<SHAMapTreeNode>(SHAMapNode(), rootNode, mSeq, format, uint256());
|
||||||
if (!node)
|
if (!node)
|
||||||
return SMAddNode::invalid();
|
return SMAddNode::invalid();
|
||||||
|
|
||||||
@@ -201,8 +201,6 @@ SMAddNode SHAMap::addRootNode(const std::vector<unsigned char>& rootNode, SHANod
|
|||||||
node->dump();
|
node->dump();
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
returnNode(root, true);
|
|
||||||
|
|
||||||
root = node;
|
root = node;
|
||||||
mTNByID[*root] = root;
|
mTNByID[*root] = root;
|
||||||
if (root->getNodeHash().isZero())
|
if (root->getNodeHash().isZero())
|
||||||
@@ -233,11 +231,10 @@ SMAddNode SHAMap::addRootNode(const uint256& hash, const std::vector<unsigned ch
|
|||||||
return SMAddNode::okay();
|
return SMAddNode::okay();
|
||||||
}
|
}
|
||||||
|
|
||||||
SHAMapTreeNode::pointer node = boost::make_shared<SHAMapTreeNode>(SHAMapNode(), rootNode, 0, format, uint256());
|
SHAMapTreeNode::pointer node = boost::make_shared<SHAMapTreeNode>(SHAMapNode(), rootNode, mSeq, format, uint256());
|
||||||
if (!node || node->getNodeHash() != hash)
|
if (!node || node->getNodeHash() != hash)
|
||||||
return SMAddNode::invalid();
|
return SMAddNode::invalid();
|
||||||
|
|
||||||
returnNode(root, true);
|
|
||||||
root = node;
|
root = node;
|
||||||
mTNByID[*root] = root;
|
mTNByID[*root] = root;
|
||||||
if (root->getNodeHash().isZero())
|
if (root->getNodeHash().isZero())
|
||||||
@@ -305,7 +302,7 @@ SMAddNode SHAMap::addKnownNode(const SHAMapNode& node, const std::vector<unsigne
|
|||||||
return SMAddNode::invalid();
|
return SMAddNode::invalid();
|
||||||
}
|
}
|
||||||
uint256 hash = iNode->getChildHash(branch);
|
uint256 hash = iNode->getChildHash(branch);
|
||||||
if (!hash)
|
if (hash.isZero())
|
||||||
{
|
{
|
||||||
cLog(lsWARNING) << "AddKnownNode for empty branch";
|
cLog(lsWARNING) << "AddKnownNode for empty branch";
|
||||||
return SMAddNode::invalid();
|
return SMAddNode::invalid();
|
||||||
@@ -351,6 +348,7 @@ SMAddNode SHAMap::addKnownNode(const SHAMapNode& node, const std::vector<unsigne
|
|||||||
|
|
||||||
if (root->isFullBelow())
|
if (root->isFullBelow())
|
||||||
clearSynching();
|
clearSynching();
|
||||||
|
|
||||||
return SMAddNode::useful();
|
return SMAddNode::useful();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user