From 253e3f524399d884b6c88d5bdaf0bf15ffb09a4b Mon Sep 17 00:00:00 2001 From: JoelKatz Date: Wed, 24 Oct 2012 15:46:19 -0700 Subject: [PATCH] Use the new, simpler traverse logic. --- src/LedgerAcquire.cpp | 8 ++++---- src/LedgerEntrySet.cpp | 37 +++++++++++++++++++------------------ src/TransactionEngine.cpp | 11 ++++++----- src/TransactionMeta.cpp | 28 ++++++++++++++-------------- 4 files changed, 43 insertions(+), 41 deletions(-) diff --git a/src/LedgerAcquire.cpp b/src/LedgerAcquire.cpp index a7e13f23b..423928dad 100644 --- a/src/LedgerAcquire.cpp +++ b/src/LedgerAcquire.cpp @@ -244,8 +244,8 @@ void LedgerAcquire::trigger(Peer::ref peer, bool timer) tmGL.set_ledgerhash(mHash.begin(), mHash.size()); tmGL.set_ledgerseq(mLedger->getLedgerSeq()); tmGL.set_itype(ripple::liTX_NODE); - for (std::vector::iterator it = nodeIDs.begin(); it != nodeIDs.end(); ++it) - *(tmGL.add_nodeids()) = it->getRawString(); + BOOST_FOREACH(SHAMapNode& it, nodeIDs) + *(tmGL.add_nodeids()) = it.getRawString(); sendRequest(tmGL, peer); } } @@ -288,8 +288,8 @@ void LedgerAcquire::trigger(Peer::ref peer, bool timer) tmGL.set_ledgerhash(mHash.begin(), mHash.size()); tmGL.set_ledgerseq(mLedger->getLedgerSeq()); tmGL.set_itype(ripple::liAS_NODE); - for (std::vector::iterator it = nodeIDs.begin(); it != nodeIDs.end(); ++it) - *(tmGL.add_nodeids()) = it->getRawString(); + BOOST_FOREACH(SHAMapNode& it, nodeIDs) + *(tmGL.add_nodeids()) = it.getRawString(); sendRequest(tmGL, peer); } } diff --git a/src/LedgerEntrySet.cpp b/src/LedgerEntrySet.cpp index e42be001d..3051013b4 100644 --- a/src/LedgerEntrySet.cpp +++ b/src/LedgerEntrySet.cpp @@ -2,6 +2,7 @@ #include "LedgerEntrySet.h" #include +#include #include "Log.h" @@ -354,30 +355,30 @@ void LedgerEntrySet::calcRawMeta(Serializer& s, TER result) // Entries modified only as a result of building the transaction metadata boost::unordered_map newMod; - for (std::map::const_iterator it = mEntries.begin(), - end = mEntries.end(); it != end; ++it) + typedef std::pair u256_LES_pair; + BOOST_FOREACH(u256_LES_pair& it, mEntries) { SField::ptr type = &sfGeneric; - switch (it->second.mAction) + switch (it.second.mAction) { case taaMODIFY: #ifdef META_DEBUG - cLog(lsTRACE) << "Modified Node " << it->first; + cLog(lsTRACE) << "Modified Node " << it.first; #endif type = &sfModifiedNode; break; case taaDELETE: #ifdef META_DEBUG - cLog(lsTRACE) << "Deleted Node " << it->first; + cLog(lsTRACE) << "Deleted Node " << it.first; #endif type = &sfDeletedNode; break; case taaCREATE: #ifdef META_DEBUG - cLog(lsTRACE) << "Created Node " << it->first; + cLog(lsTRACE) << "Created Node " << it.first; #endif type = &sfCreatedNode; break; @@ -389,13 +390,13 @@ void LedgerEntrySet::calcRawMeta(Serializer& s, TER result) if (type == &sfGeneric) continue; - SLE::pointer origNode = mLedger->getSLE(it->first); + SLE::pointer origNode = mLedger->getSLE(it.first); if (origNode && (origNode->getType() == ltDIR_NODE)) // No metadata for dir nodes continue; - SLE::pointer curNode = it->second.mEntry; - mSet.setAffectedNode(it->first, *type); + SLE::pointer curNode = it.second.mEntry; + mSet.setAffectedNode(it.first, *type); if (type == &sfDeletedNode) { @@ -406,16 +407,16 @@ void LedgerEntrySet::calcRawMeta(Serializer& s, TER result) { // node has an amount, covers ripple state nodes STAmount amount = origNode->getFieldAmount(sfAmount); if (amount.isNonZero()) - mSet.getAffectedNode(it->first).setFieldAmount(sfPreviousBalance, amount); + mSet.getAffectedNode(it.first).setFieldAmount(sfPreviousBalance, amount); amount = curNode->getFieldAmount(sfAmount); if (amount.isNonZero()) - mSet.getAffectedNode(it->first).setFieldAmount(sfFinalBalance, amount); + mSet.getAffectedNode(it.first).setFieldAmount(sfFinalBalance, amount); if (origNode->getType() == ltRIPPLE_STATE) { - mSet.getAffectedNode(it->first).setFieldAccount(sfLowID, + mSet.getAffectedNode(it.first).setFieldAccount(sfLowID, NewcoinAddress::createAccountID(origNode->getFieldAmount(sfLowLimit).getIssuer())); - mSet.getAffectedNode(it->first).setFieldAccount(sfHighID, + mSet.getAffectedNode(it.first).setFieldAccount(sfHighID, NewcoinAddress::createAccountID(origNode->getFieldAmount(sfHighLimit).getIssuer())); } } @@ -424,10 +425,10 @@ void LedgerEntrySet::calcRawMeta(Serializer& s, TER result) { // check for non-zero balances STAmount amount = origNode->getFieldAmount(sfTakerPays); if (amount.isNonZero()) - mSet.getAffectedNode(it->first).setFieldAmount(sfFinalTakerPays, amount); + mSet.getAffectedNode(it.first).setFieldAmount(sfFinalTakerPays, amount); amount = origNode->getFieldAmount(sfTakerGets); if (amount.isNonZero()) - mSet.getAffectedNode(it->first).setFieldAmount(sfFinalTakerGets, amount); + mSet.getAffectedNode(it.first).setFieldAmount(sfFinalTakerGets, amount); } } @@ -451,17 +452,17 @@ void LedgerEntrySet::calcRawMeta(Serializer& s, TER result) { // node has an amount, covers account root nodes and ripple nodes STAmount amount = origNode->getFieldAmount(sfAmount); if (amount != curNode->getFieldAmount(sfAmount)) - mSet.getAffectedNode(it->first).setFieldAmount(sfPreviousBalance, amount); + mSet.getAffectedNode(it.first).setFieldAmount(sfPreviousBalance, amount); } if (origNode->getType() == ltOFFER) { STAmount amount = origNode->getFieldAmount(sfTakerPays); if (amount != curNode->getFieldAmount(sfTakerPays)) - mSet.getAffectedNode(it->first).setFieldAmount(sfPreviousTakerPays, amount); + mSet.getAffectedNode(it.first).setFieldAmount(sfPreviousTakerPays, amount); amount = origNode->getFieldAmount(sfTakerGets); if (amount != curNode->getFieldAmount(sfTakerGets)) - mSet.getAffectedNode(it->first).setFieldAmount(sfPreviousTakerGets, amount); + mSet.getAffectedNode(it.first).setFieldAmount(sfPreviousTakerGets, amount); } } diff --git a/src/TransactionEngine.cpp b/src/TransactionEngine.cpp index 167b275ba..b4c97b28b 100644 --- a/src/TransactionEngine.cpp +++ b/src/TransactionEngine.cpp @@ -3,6 +3,7 @@ // #include +#include #include "TransactionEngine.h" @@ -18,12 +19,12 @@ SETUP_LOG(); void TransactionEngine::txnWrite() { // Write back the account states - for (std::map::iterator it = mNodes.begin(), end = mNodes.end(); - it != end; ++it) + typedef std::pair u256_LES_pair; + BOOST_FOREACH(u256_LES_pair& it, mNodes) { - const SLE::pointer& sleEntry = it->second.mEntry; + const SLE::pointer& sleEntry = it.second.mEntry; - switch (it->second.mAction) + switch (it.second.mAction) { case taaNONE: assert(false); @@ -54,7 +55,7 @@ void TransactionEngine::txnWrite() { cLog(lsINFO) << "applyTransaction: taaDELETE: " << sleEntry->getText(); - if (!mLedger->peekAccountStateMap()->delItem(it->first)) + if (!mLedger->peekAccountStateMap()->delItem(it.first)) assert(false); } break; diff --git a/src/TransactionMeta.cpp b/src/TransactionMeta.cpp index b6b33a98f..2a504247c 100644 --- a/src/TransactionMeta.cpp +++ b/src/TransactionMeta.cpp @@ -25,19 +25,19 @@ TransactionMetaSet::TransactionMetaSet(const uint256& txid, uint32 ledger, const bool TransactionMetaSet::isNodeAffected(const uint256& node) const { - for (STArray::const_iterator it = mNodes.begin(); it != mNodes.end(); ++it) - if (it->getFieldH256(sfLedgerIndex) == node) + BOOST_FOREACH(const STObject& it, mNodes) + if (it.getFieldH256(sfLedgerIndex) == node) return true; return false; } void TransactionMetaSet::setAffectedNode(const uint256& node, SField::ref type) { // make sure the node exists and force its type - for (STArray::iterator it = mNodes.begin(); it != mNodes.end(); ++it) + BOOST_FOREACH(STObject& it, mNodes) { - if (it->getFieldH256(sfLedgerIndex) == node) + if (it.getFieldH256(sfLedgerIndex) == node) { - it->setFName(type); + it.setFName(type); return; } } @@ -52,10 +52,10 @@ void TransactionMetaSet::setAffectedNode(const uint256& node, SField::ref type) STObject& TransactionMetaSet::getAffectedNode(const uint256& node, SField::ref type) { assert(&type); - for (STArray::iterator it = mNodes.begin(); it != mNodes.end(); ++it) + BOOST_FOREACH(STObject& it, mNodes) { - if (it->getFieldH256(sfLedgerIndex) == node) - return *it; + if (it.getFieldH256(sfLedgerIndex) == node) + return it; } mNodes.push_back(STObject(sfModifiedNode)); @@ -69,10 +69,10 @@ STObject& TransactionMetaSet::getAffectedNode(const uint256& node, SField::ref t STObject& TransactionMetaSet::getAffectedNode(const uint256& node) { - for (STArray::iterator it = mNodes.begin(); it != mNodes.end(); ++it) + BOOST_FOREACH(STObject& it, mNodes) { - if (it->getFieldH256(sfLedgerIndex) == node) - return *it; + if (it.getFieldH256(sfLedgerIndex) == node) + return it; } assert(false); throw std::runtime_error("Affected node not found"); @@ -80,9 +80,9 @@ STObject& TransactionMetaSet::getAffectedNode(const uint256& node) const STObject& TransactionMetaSet::peekAffectedNode(const uint256& node) const { - for (STArray::const_iterator it = mNodes.begin(); it != mNodes.end(); ++it) - if (it->getFieldH256(sfLedgerIndex) == node) - return *it; + BOOST_FOREACH(const STObject& it, mNodes) + if (it.getFieldH256(sfLedgerIndex) == node) + return it; throw std::runtime_error("Affected node not found"); }