From 52f576605980a5167d98c1ac95632cb9d7947849 Mon Sep 17 00:00:00 2001 From: Daniel Liu <139250065@qq.com> Date: Mon, 28 Jul 2025 16:57:51 +0800 Subject: [PATCH] core: pre-allocate in Copy() #25279 (#1213) --- core/state/state_object.go | 4 ++-- core/vm/logger.go | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/core/state/state_object.go b/core/state/state_object.go index e0a02fba17..e7ef84879c 100644 --- a/core/state/state_object.go +++ b/core/state/state_object.go @@ -46,7 +46,7 @@ func (s Storage) String() (str string) { } func (s Storage) Copy() Storage { - cpy := make(Storage) + cpy := make(Storage, len(s)) for key, value := range s { cpy[key] = value } @@ -251,7 +251,7 @@ func (s *stateObject) SetState(db Database, key, value common.Hash) { func (s *stateObject) SetStorage(storage map[common.Hash]common.Hash) { // Allocate fake storage if it's nil. if s.fakeStorage == nil { - s.fakeStorage = make(Storage) + s.fakeStorage = make(Storage, len(storage)) } for key, value := range storage { s.fakeStorage[key] = value diff --git a/core/vm/logger.go b/core/vm/logger.go index 1aaf0a721a..f1d815c1bc 100644 --- a/core/vm/logger.go +++ b/core/vm/logger.go @@ -37,7 +37,7 @@ type Storage map[common.Hash]common.Hash // Copy duplicates the current storage. func (s Storage) Copy() Storage { - cpy := make(Storage) + cpy := make(Storage, len(s)) for key, value := range s { cpy[key] = value }