Skip to content

Commit

Permalink
fix(trie): retain updates only for sparse branch nodes in the prefix …
Browse files Browse the repository at this point in the history
…set (#13234)
  • Loading branch information
shekhirin authored Dec 9, 2024
1 parent b5bbb8d commit a3e90e1
Showing 1 changed file with 3 additions and 2 deletions.
5 changes: 3 additions & 2 deletions crates/trie/sparse/src/trie.rs
Original file line number Diff line number Diff line change
Expand Up @@ -623,6 +623,7 @@ impl<P> RevealedSparseTrie<P> {
));
continue
}
let retain_updates = self.updates.is_some() && prefix_set_contains(&path);

buffers.branch_child_buf.clear();
// Walk children in a reverse order from `f` to `0`, so we pop the `0` first
Expand Down Expand Up @@ -650,7 +651,7 @@ impl<P> RevealedSparseTrie<P> {
buffers.rlp_node_stack.pop().unwrap();

// Update the masks only if we need to retain trie updates
if self.updates.is_some() {
if retain_updates {
// Set the trie mask
let tree_mask_value = if node_type.store_in_db_trie() {
// A branch or an extension node explicitly set the
Expand Down Expand Up @@ -716,7 +717,7 @@ impl<P> RevealedSparseTrie<P> {
// Save a branch node update only if it's not a root node, and we need to
// persist updates.
let store_in_db_trie_value = if let Some(updates) =
self.updates.as_mut().filter(|_| !path.is_empty())
self.updates.as_mut().filter(|_| retain_updates && !path.is_empty())
{
let mut tree_mask_values = tree_mask_values.into_iter().rev();
let mut hash_mask_values = hash_mask_values.into_iter().rev();
Expand Down

0 comments on commit a3e90e1

Please sign in to comment.