diff options
author | Felix Lange <fjl@twurst.com> | 2016-09-22 19:11:59 +0800 |
---|---|---|
committer | GitHub <noreply@github.com> | 2016-09-22 19:11:59 +0800 |
commit | 3778f1bf778366cea1232f2a54135e8153d65c97 (patch) | |
tree | e5d5a42fe01401b810e07c62f12337b12032e7b9 | |
parent | f85f46461f58436c2d6bb08e810f4abbf97d14be (diff) | |
parent | 22eea17b0672fc8be84b655f995f3f2555446c5e (diff) | |
download | dexon-3778f1bf778366cea1232f2a54135e8153d65c97.tar.gz dexon-3778f1bf778366cea1232f2a54135e8153d65c97.tar.zst dexon-3778f1bf778366cea1232f2a54135e8153d65c97.zip |
Merge pull request #3009 from Gustav-Simonsson/fix_oom_in_light
light: fix memory expansion bug (same as fix for core/state)
-rw-r--r-- | light/state.go | 4 | ||||
-rw-r--r-- | light/state_object.go | 2 |
2 files changed, 4 insertions, 2 deletions
diff --git a/light/state.go b/light/state.go index e18f9cdc5..4f2177238 100644 --- a/light/state.go +++ b/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 diff --git a/light/state_object.go b/light/state_object.go index 08c209d7d..1e9c7f4b1 100644 --- a/light/state_object.go +++ b/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 |