From 60787be80ce0bc26c3f24532b23588e5a75224fe Mon Sep 17 00:00:00 2001 From: David Schwartz Date: Fri, 7 Mar 2014 10:36:39 -0800 Subject: [PATCH] Check the node store for transaction nodes with metadata --- src/ripple_app/shamap/SHAMap.cpp | 4 +++- src/ripple_app/shamap/SHAMap.h | 8 ++++++++ src/ripple_app/tx/TransactionAcquire.cpp | 1 + 3 files changed, 12 insertions(+), 1 deletion(-) diff --git a/src/ripple_app/shamap/SHAMap.cpp b/src/ripple_app/shamap/SHAMap.cpp index 1c0d97462..0dfa66cdd 100644 --- a/src/ripple_app/shamap/SHAMap.cpp +++ b/src/ripple_app/shamap/SHAMap.cpp @@ -33,6 +33,7 @@ SHAMap::SHAMap (SHAMapType t, FullBelowCache& fullBelowCache, uint32 seq, , mLedgerSeq (0) , mState (smsModifying) , mType (t) + , mTXMap (false) , m_missing_node_handler (missing_node_handler) { assert (mSeq != 0); @@ -51,6 +52,7 @@ SHAMap::SHAMap (SHAMapType t, uint256 const& hash, FullBelowCache& fullBelowCach , mLedgerSeq (0) , mState (smsSynching) , mType (t) + , mTXMap (false) , m_missing_node_handler (missing_node_handler) { if (t == smtSTATE) @@ -933,7 +935,7 @@ SHAMapTreeNode* SHAMap::getNodeAsync ( if (!ptr) { - if (mType == smtTRANSACTION) + if (mTXMap) { // We don't store proposed transaction nodes in the node store return nullptr; diff --git a/src/ripple_app/shamap/SHAMap.h b/src/ripple_app/shamap/SHAMap.h index bb817aad8..13865b82a 100644 --- a/src/ripple_app/shamap/SHAMap.h +++ b/src/ripple_app/shamap/SHAMap.h @@ -270,6 +270,13 @@ public: treeNodeCache.setTargetAge (age); } + void setTXMap () + { + mTXMap = true; + } + + typedef std::pair TNIndex; + private: static TaggedCache treeNodeCache; @@ -321,6 +328,7 @@ private: SHAMapTreeNode::pointer root; SHAMapState mState; SHAMapType mType; + bool mTXMap; // Map of transactions without metadata MissingNodeHandler m_missing_node_handler; }; diff --git a/src/ripple_app/tx/TransactionAcquire.cpp b/src/ripple_app/tx/TransactionAcquire.cpp index a67140439..d18e4f272 100644 --- a/src/ripple_app/tx/TransactionAcquire.cpp +++ b/src/ripple_app/tx/TransactionAcquire.cpp @@ -37,6 +37,7 @@ TransactionAcquire::TransactionAcquire (uint256 const& hash, clock_type& clock) { mMap = boost::make_shared (smtTRANSACTION, hash, std::ref (getApp().getFullBelowCache ())); + mMap->setTXMap (); } TransactionAcquire::~TransactionAcquire ()