aboutsummaryrefslogtreecommitdiffstats
path: root/light
diff options
context:
space:
mode:
authorGustav Simonsson <gustav.simonsson@gmail.com>2016-09-19 14:13:14 +0800
committerGustav Simonsson <gustav.simonsson@gmail.com>2016-09-20 03:26:55 +0800
commit22eea17b0672fc8be84b655f995f3f2555446c5e (patch)
tree622a34920f15745b46606b174b89ac329b3d64a8 /light
parentc8d6efd602042687236669b5c7624c93640ccfbc (diff)
downloaddexon-22eea17b0672fc8be84b655f995f3f2555446c5e.tar
dexon-22eea17b0672fc8be84b655f995f3f2555446c5e.tar.gz
dexon-22eea17b0672fc8be84b655f995f3f2555446c5e.tar.bz2
dexon-22eea17b0672fc8be84b655f995f3f2555446c5e.tar.lz
dexon-22eea17b0672fc8be84b655f995f3f2555446c5e.tar.xz
dexon-22eea17b0672fc8be84b655f995f3f2555446c5e.tar.zst
dexon-22eea17b0672fc8be84b655f995f3f2555446c5e.zip
light: fix memory expansion bug (same as fix for core/state)
Diffstat (limited to 'light')
-rw-r--r--light/state.go4
-rw-r--r--light/state_object.go2
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