diff --git a/core/state/snapshot/difflayer.go b/core/state/snapshot/difflayer.go index ad4bb4fcb..fc8f534b4 100644 --- a/core/state/snapshot/difflayer.go +++ b/core/state/snapshot/difflayer.go @@ -523,7 +523,6 @@ func (dl *diffLayer) AccountList() []common.Hash { // // Note, the returned slice is not a copy, so do not modify it. func (dl *diffLayer) StorageList(accountHash common.Hash) ([]common.Hash, bool) { - // If an old list already exists, return it dl.lock.RLock() _, destructed := dl.destructSet[accountHash] if _, ok := dl.storageData[accountHash]; !ok { @@ -531,9 +530,10 @@ func (dl *diffLayer) StorageList(accountHash common.Hash) ([]common.Hash, bool) dl.lock.RUnlock() return nil, destructed } + // If an old list already exists, return it if list, exist := dl.storageList[accountHash]; exist { dl.lock.RUnlock() - return list, destructed // The list might be nil + return list, destructed // the cached list can't be nil } dl.lock.RUnlock()