address review comments 1

This commit is contained in:
Valentin Balaschenko
2026-07-09 15:05:56 +01:00
parent 66c2471310
commit 833ab2c101
2 changed files with 18 additions and 36 deletions

View File

@@ -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

View File

@@ -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(