diff --git a/src/cpp/ripple/Ledger.cpp b/src/cpp/ripple/Ledger.cpp index b8ffa1b86..9b1f797d8 100644 --- a/src/cpp/ripple/Ledger.cpp +++ b/src/cpp/ripple/Ledger.cpp @@ -464,7 +464,6 @@ void Ledger::saveAcceptedLedger(bool fromConsensus, LoadEvent::pointer event) return; } - theApp->getLedgerMaster().setFullLedger(shared_from_this()); event->stop(); decPendingSaves(); diff --git a/src/cpp/ripple/LedgerMaster.cpp b/src/cpp/ripple/LedgerMaster.cpp index f6cf11652..d0d4cd5cb 100644 --- a/src/cpp/ripple/LedgerMaster.cpp +++ b/src/cpp/ripple/LedgerMaster.cpp @@ -218,6 +218,9 @@ void LedgerMaster::fixMismatch(Ledger::ref ledger) { int invalidate = 0; + mMissingLedger.reset(); + mMissingSeq = 0; + for (uint32 lSeq = ledger->getLedgerSeq() - 1; lSeq > 0; --lSeq) if (mCompleteLedgers.hasValue(lSeq)) { @@ -233,11 +236,6 @@ void LedgerMaster::fixMismatch(Ledger::ref ledger) } } mCompleteLedgers.clearValue(lSeq); - if (mMissingSeq == lSeq) - { - mMissingLedger.reset(); - mMissingSeq = 0; - } ++invalidate; } @@ -400,6 +398,7 @@ void LedgerMaster::pubThread() BOOST_FOREACH(Ledger::ref l, ledgers) { + setFullLedger(l); // OPTIMIZEME: This is actually more work than we need to do theApp->getOPs().pubLedger(l); BOOST_FOREACH(callback& c, mOnValidate) {