From dc08a9061ec5c649519fe48d53f025f3440a03a1 Mon Sep 17 00:00:00 2001 From: JoelKatz Date: Sat, 6 Jul 2013 12:35:18 -0700 Subject: [PATCH] Fix some possible cases where a node could be marked as full below when it shouldn't be. --- src/cpp/ripple/ripple_SHAMapSync.cpp | 6 ++++-- src/cpp/ripple/ripple_SHAMapTreeNode.cpp | 2 +- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/src/cpp/ripple/ripple_SHAMapSync.cpp b/src/cpp/ripple/ripple_SHAMapSync.cpp index 2c5621ce2..d09b33c0f 100644 --- a/src/cpp/ripple/ripple_SHAMapSync.cpp +++ b/src/cpp/ripple/ripple_SHAMapSync.cpp @@ -77,7 +77,8 @@ void SHAMap::getMissingNodes (std::vector& nodeIDs, std::vectorsetFullBelow (); - fullBelowCache.add (node->getNodeHash ()); + if (mType == smtSTATE) + fullBelowCache.add (node->getNodeHash ()); } } @@ -143,7 +144,8 @@ std::vector SHAMap::getNeededHashes (int max, SHAMapSyncFilter* filter) if (have_all) { node->setFullBelow (); - fullBelowCache.add (node->getNodeHash ()); + if (mType == smtSTATE) + fullBelowCache.add (node->getNodeHash ()); } } diff --git a/src/cpp/ripple/ripple_SHAMapTreeNode.cpp b/src/cpp/ripple/ripple_SHAMapTreeNode.cpp index 0a7d16dcf..4f096071b 100644 --- a/src/cpp/ripple/ripple_SHAMapTreeNode.cpp +++ b/src/cpp/ripple/ripple_SHAMapTreeNode.cpp @@ -19,7 +19,7 @@ SHAMapTreeNode::SHAMapTreeNode (const SHAMapTreeNode& node, uint32 seq) : SHAMap } SHAMapTreeNode::SHAMapTreeNode (const SHAMapNode& node, SHAMapItem::ref item, TNType type, uint32 seq) : - SHAMapNode (node), mItem (item), mSeq (seq), mType (type), mIsBranch (0), mFullBelow (true) + SHAMapNode (node), mItem (item), mSeq (seq), mType (type), mIsBranch (0), mFullBelow (false) { assert (item->peekData ().size () >= 12); updateHash ();