mirror of
https://github.com/XRPLF/rippled.git
synced 2025-12-06 17:27:55 +00:00
Refactor and improve the SHAMap code:
This commit combines a number of cleanups, targeting both the code structure and the code logic. Large changes include: - Using more strongly-typed classes for SHAMap nodes, instead of relying on runtime-time detection of class types. This change saves 16 bytes of memory per node. - Improving the interface of SHAMap::addGiveItem and SHAMap::addItem to avoid the need for passing two bool arguments. - Documenting the "copy-on-write" semantics that SHAMap uses to efficiently track changes in individual nodes. - Removing unused code and simplifying several APIs. - Improving function naming.
This commit is contained in:
@@ -65,7 +65,7 @@ public:
|
||||
SHAMapHash const& nodeHash,
|
||||
std::uint32_t ledgerSeq,
|
||||
Blob&& nodeData,
|
||||
SHAMapTreeNode::TNType type) const override
|
||||
SHAMapNodeType type) const override
|
||||
{
|
||||
}
|
||||
|
||||
@@ -100,7 +100,8 @@ public:
|
||||
while (n--)
|
||||
{
|
||||
std::shared_ptr<SHAMapItem> item(make_random_item(r));
|
||||
auto const result(t.addItem(std::move(*item), false, false));
|
||||
auto const result(
|
||||
t.addItem(SHAMapNodeType::tnACCOUNT_STATE, std::move(*item)));
|
||||
assert(result);
|
||||
(void)result;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user