mirror of
https://github.com/XRPLF/rippled.git
synced 2026-07-23 23:20:33 +00:00
address review comments 1
This commit is contained in:
@@ -110,12 +110,12 @@ public:
|
||||
|
||||
// Can retrieve by sequence and get correct ledger
|
||||
auto fetched1 = lh.getLedgerBySeq(ledger1->header().seq);
|
||||
BEAST_EXPECT(fetched1 != nullptr);
|
||||
BEAST_EXPECT(fetched1->header().hash == ledger1->header().hash);
|
||||
if (BEAST_EXPECT(fetched1 != nullptr))
|
||||
BEAST_EXPECT(fetched1->header().hash == ledger1->header().hash);
|
||||
|
||||
auto fetched2 = lh.getLedgerBySeq(ledger2->header().seq);
|
||||
BEAST_EXPECT(fetched2 != nullptr);
|
||||
BEAST_EXPECT(fetched2->header().hash == ledger2->header().hash);
|
||||
if (BEAST_EXPECT(fetched2 != nullptr))
|
||||
BEAST_EXPECT(fetched2->header().hash == ledger2->header().hash);
|
||||
|
||||
// Clear ledgers prior to ledger2's sequence
|
||||
lh.clearLedgerCachePrior(ledger2->header().seq);
|
||||
@@ -132,12 +132,12 @@ public:
|
||||
// Verify newer entries remain retrievable and consistent
|
||||
// getLedgerBySeq uses by_index first, then falls back to DB if needed
|
||||
auto fetched2After = lh.getLedgerBySeq(ledger2->header().seq);
|
||||
BEAST_EXPECT(fetched2After != nullptr);
|
||||
BEAST_EXPECT(fetched2After->header().hash == ledger2->header().hash);
|
||||
if (BEAST_EXPECT(fetched2After != nullptr))
|
||||
BEAST_EXPECT(fetched2After->header().hash == ledger2->header().hash);
|
||||
|
||||
auto fetched3After = lh.getLedgerBySeq(ledger3->header().seq);
|
||||
BEAST_EXPECT(fetched3After != nullptr);
|
||||
BEAST_EXPECT(fetched3After->header().hash == ledger3->header().hash);
|
||||
if (BEAST_EXPECT(fetched3After != nullptr))
|
||||
BEAST_EXPECT(fetched3After->header().hash == ledger3->header().hash);
|
||||
}
|
||||
|
||||
void
|
||||
|
||||
@@ -85,13 +85,7 @@ LedgerHistory::getLedgerBySeq(LedgerIndex index)
|
||||
{
|
||||
auto lock = ledgerMaps_.lock();
|
||||
if (auto it = lock->byIndex.find(index); it != lock->byIndex.end())
|
||||
{
|
||||
hash = it->second;
|
||||
}
|
||||
else
|
||||
{
|
||||
hash = {};
|
||||
}
|
||||
}
|
||||
|
||||
if (!hash.isZero())
|
||||
@@ -437,8 +431,8 @@ LedgerHistory::builtLedger(
|
||||
uint256 const& consensusHash,
|
||||
json::Value consensus)
|
||||
{
|
||||
LedgerIndex index = ledger->header().seq;
|
||||
LedgerHash hash = ledger->header().hash;
|
||||
LedgerIndex const index = ledger->header().seq;
|
||||
LedgerHash const hash = ledger->header().hash;
|
||||
XRPL_ASSERT(!hash.isZero(), "xrpl::LedgerHistory::builtLedger : nonzero hash");
|
||||
|
||||
struct MismatchInputs
|
||||
@@ -489,8 +483,8 @@ LedgerHistory::validatedLedger(
|
||||
std::shared_ptr<Ledger const> const& ledger,
|
||||
std::optional<uint256> const& consensusHash)
|
||||
{
|
||||
LedgerIndex index = ledger->header().seq;
|
||||
LedgerHash hash = ledger->header().hash;
|
||||
LedgerIndex const index = ledger->header().seq;
|
||||
LedgerHash const hash = ledger->header().hash;
|
||||
XRPL_ASSERT(!hash.isZero(), "xrpl::LedgerHistory::validatedLedger : nonzero hash");
|
||||
|
||||
struct MismatchInputs
|
||||
@@ -550,7 +544,7 @@ LedgerHistory::fixIndex(LedgerIndex ledgerIndex, LedgerHash const& ledgerHash)
|
||||
{
|
||||
if (it->second != ledgerHash)
|
||||
{
|
||||
lock->byIndex[ledgerIndex] = ledgerHash;
|
||||
it->second = ledgerHash;
|
||||
return false;
|
||||
}
|
||||
}
|
||||
@@ -565,11 +559,10 @@ LedgerHistory::clearLedgerCachePrior(LedgerIndex seq)
|
||||
std::size_t cacheSize = 0;
|
||||
std::size_t indexSize = 0;
|
||||
|
||||
std::vector<LedgerHash> keys;
|
||||
{
|
||||
std::vector<LedgerHash> const keys = [this] {
|
||||
auto lock = ledgerMaps_.lock();
|
||||
keys = lock->byHash->getKeys();
|
||||
}
|
||||
return lock->byHash->getKeys();
|
||||
}();
|
||||
|
||||
for (LedgerHash const& it : keys)
|
||||
{
|
||||
@@ -586,19 +579,8 @@ LedgerHistory::clearLedgerCachePrior(LedgerIndex seq)
|
||||
auto lock = ledgerMaps_.lock();
|
||||
cacheSize = lock->byHash->size();
|
||||
|
||||
auto it = lock->byIndex.begin();
|
||||
while (it != lock->byIndex.end())
|
||||
{
|
||||
if (it->first < seq)
|
||||
{
|
||||
it = lock->byIndex.erase(it);
|
||||
++indexesCleared;
|
||||
}
|
||||
else
|
||||
{
|
||||
++it;
|
||||
}
|
||||
}
|
||||
indexesCleared = std::erase_if(
|
||||
lock->byIndex, [seq](auto const& kv) { return kv.first < seq; });
|
||||
indexSize = lock->byIndex.size();
|
||||
|
||||
XRPL_ASSERT(
|
||||
|
||||
Reference in New Issue
Block a user