From c5df8fbaaf8a7f6101980beff9d94e2d76b8bcee Mon Sep 17 00:00:00 2001 From: DaniPopes <57450786+DaniPopes@users.noreply.github.com> Date: Thu, 20 Feb 2025 07:52:29 +0100 Subject: [PATCH] perf(tree): insert account cache only when not present (#14599) --- crates/engine/tree/src/tree/cached_state.rs | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/crates/engine/tree/src/tree/cached_state.rs b/crates/engine/tree/src/tree/cached_state.rs index 525f163cd..f9d72b8e6 100644 --- a/crates/engine/tree/src/tree/cached_state.rs +++ b/crates/engine/tree/src/tree/cached_state.rs @@ -356,11 +356,12 @@ impl ProviderCaches { key: StorageKey, value: Option, ) { - let account_cache = self.storage_cache.get(&address).unwrap_or_default(); - + let account_cache = self.storage_cache.get(&address).unwrap_or_else(|| { + let account_cache = AccountStorageCache::default(); + self.storage_cache.insert(address, account_cache.clone()); + account_cache + }); account_cache.insert_storage(key, value); - - self.storage_cache.insert(address, account_cache); } /// Invalidate storage for specific account