diff --git a/src/cpp/ripple/SHAMapSync.cpp b/src/cpp/ripple/SHAMapSync.cpp index 65bd73408..d564eebb9 100644 --- a/src/cpp/ripple/SHAMapSync.cpp +++ b/src/cpp/ripple/SHAMapSync.cpp @@ -32,12 +32,12 @@ void SHAMap::getMissingNodes(std::vector& nodeIDs, std::vector stack; - stack.push(root); + std::stack stack; + stack.push(root.get()); while (!stack.empty()) { - SHAMapTreeNode::pointer node = stack.top(); + SHAMapTreeNode* node = stack.top(); stack.pop(); int base = rand() % 256; @@ -49,10 +49,10 @@ void SHAMap::getMissingNodes(std::vector& nodeIDs, std::vectorgetChildNodeID(branch); const uint256& childHash = node->getChildHash(branch); - SHAMapTreeNode::pointer d; + SHAMapTreeNode* d; try { - d = getNode(childID, childHash, false); + d = getNodePointer(childID, childHash); } catch (SHAMapMissingNode&) { // node is not in the map @@ -61,9 +61,11 @@ void SHAMap::getMissingNodes(std::vector& nodeIDs, std::vector nodeData; if (filter->haveNode(childID, childHash, nodeData)) { - d = boost::make_shared(childID, nodeData, mSeq, snfPREFIX, childHash); + SHAMapTreeNode::pointer ptr = + boost::make_shared(childID, nodeData, mSeq, snfPREFIX, childHash); cLog(lsTRACE) << "Got sync node from cache: " << *d; - mTNByID[*d] = d; + mTNByID[*ptr] = ptr; + d = ptr.get(); } } }