core/statedb: deep copy logs (#17489)

This commit is contained in:
gary rong 2018-08-23 20:59:58 +08:00 committed by Péter Szilágyi
parent 67d6d0bb7d
commit c3f7e3be3b
1 changed files with 6 additions and 3 deletions

View File

@ -489,10 +489,13 @@ func (self *StateDB) Copy() *StateDB {
state.stateObjectsDirty[addr] = struct{}{} state.stateObjectsDirty[addr] = struct{}{}
} }
} }
for hash, logs := range self.logs { for hash, logs := range self.logs {
state.logs[hash] = make([]*types.Log, len(logs)) cpy := make([]*types.Log, len(logs))
copy(state.logs[hash], logs) for i, l := range logs {
cpy[i] = new(types.Log)
*cpy[i] = *l
}
state.logs[hash] = cpy
} }
for hash, preimage := range self.preimages { for hash, preimage := range self.preimages {
state.preimages[hash] = preimage state.preimages[hash] = preimage