light: fix memory expansion bug (same as fix for core/state)

This commit is contained in:
Gustav Simonsson 2016-09-19 02:13:14 -04:00
parent c8d6efd602
commit 22eea17b06
2 changed files with 4 additions and 2 deletions

View File

@ -261,7 +261,9 @@ func (self *LightState) Copy() *LightState {
state := NewLightState(common.Hash{}, self.odr) state := NewLightState(common.Hash{}, self.odr)
state.trie = self.trie state.trie = self.trie
for k, stateObject := range self.stateObjects { for k, stateObject := range self.stateObjects {
state.stateObjects[k] = stateObject.Copy() if stateObject.dirty {
state.stateObjects[k] = stateObject.Copy()
}
} }
return state return state

View File

@ -186,7 +186,7 @@ func (self *StateObject) Copy() *StateObject {
stateObject.codeHash = common.CopyBytes(self.codeHash) stateObject.codeHash = common.CopyBytes(self.codeHash)
stateObject.nonce = self.nonce stateObject.nonce = self.nonce
stateObject.trie = self.trie stateObject.trie = self.trie
stateObject.code = common.CopyBytes(self.code) stateObject.code = self.code
stateObject.storage = self.storage.Copy() stateObject.storage = self.storage.Copy()
stateObject.remove = self.remove stateObject.remove = self.remove
stateObject.dirty = self.dirty stateObject.dirty = self.dirty