Sfoglia il codice sorgente

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

Gustav Simonsson 9 anni fa
parent
commit
22eea17b06
2 ha cambiato i file con 4 aggiunte e 2 eliminazioni
  1. 3 1
      light/state.go
  2. 1 1
      light/state_object.go

+ 3 - 1
light/state.go

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

+ 1 - 1
light/state_object.go

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