trie: reduce allocs in insertPreimage (#21261) (#943)

Co-authored-by: Marius van der Wijden <m.vanderwijden@live.de>
This commit is contained in:
Daniel Liu 2025-04-16 17:08:31 +08:00 committed by GitHub
parent c91a67c4c0
commit bf893cb73b
No known key found for this signature in database
GPG key ID: B5690EEEBB952194

View file

@ -323,15 +323,16 @@ func (db *Database) insert(hash common.Hash, size int, node node) {
db.dirtiesSize += common.StorageSize(common.HashLength + entry.size) db.dirtiesSize += common.StorageSize(common.HashLength + entry.size)
} }
// InsertPreimage writes a new trie Node pre-image to the memory database if it's // insertPreimage writes a new trie node pre-image to the memory database if it's
// yet unknown. The method will make a copy of the slice. // yet unknown. The method will NOT make a copy of the slice,
// only use if the preimage will NOT be changed later on.
// //
// Note, this method assumes that the database's Lock is held! // Note, this method assumes that the database's Lock is held!
func (db *Database) InsertPreimage(hash common.Hash, preimage []byte) { func (db *Database) InsertPreimage(hash common.Hash, preimage []byte) {
if _, ok := db.preimages[hash]; ok { if _, ok := db.preimages[hash]; ok {
return return
} }
db.preimages[hash] = common.CopyBytes(preimage) db.preimages[hash] = preimage
db.preimagesSize += common.StorageSize(common.HashLength + len(preimage)) db.preimagesSize += common.StorageSize(common.HashLength + len(preimage))
} }