diff options
author | Jeffrey Wilcke <jeffrey@ethereum.org> | 2015-07-04 18:42:13 +0800 |
---|---|---|
committer | Jeffrey Wilcke <jeffrey@ethereum.org> | 2015-07-04 18:42:13 +0800 |
commit | 9c3db1be1dd24c366a58a7ced22adfa0b0839efe (patch) | |
tree | 0c102cd7f590a80bc291b82274e7ca16335a250f /trie/shortnode.go | |
parent | 9bb575be7db85f967771018a915fbc4e80345ee2 (diff) | |
parent | 47460b3b4af51e08518c781680897cf2986415cc (diff) | |
download | dexon-9c3db1be1dd24c366a58a7ced22adfa0b0839efe.tar dexon-9c3db1be1dd24c366a58a7ced22adfa0b0839efe.tar.gz dexon-9c3db1be1dd24c366a58a7ced22adfa0b0839efe.tar.bz2 dexon-9c3db1be1dd24c366a58a7ced22adfa0b0839efe.tar.lz dexon-9c3db1be1dd24c366a58a7ced22adfa0b0839efe.tar.xz dexon-9c3db1be1dd24c366a58a7ced22adfa0b0839efe.tar.zst dexon-9c3db1be1dd24c366a58a7ced22adfa0b0839efe.zip |
Merge pull request #1369 from obscuren/statedb-update-cleanup
core, core/state: throw out intermediate state
Diffstat (limited to 'trie/shortnode.go')
-rw-r--r-- | trie/shortnode.go | 12 |
1 files changed, 9 insertions, 3 deletions
diff --git a/trie/shortnode.go b/trie/shortnode.go index edd490b4d..c86e50096 100644 --- a/trie/shortnode.go +++ b/trie/shortnode.go @@ -6,20 +6,22 @@ type ShortNode struct { trie *Trie key []byte value Node + dirty bool } func NewShortNode(t *Trie, key []byte, value Node) *ShortNode { - return &ShortNode{t, []byte(CompactEncode(key)), value} + return &ShortNode{t, []byte(CompactEncode(key)), value, false} } func (self *ShortNode) Value() Node { self.value = self.trie.trans(self.value) return self.value } -func (self *ShortNode) Dirty() bool { return true } +func (self *ShortNode) Dirty() bool { return self.dirty } func (self *ShortNode) Copy(t *Trie) Node { - node := &ShortNode{t, nil, self.value.Copy(t)} + node := &ShortNode{t, nil, self.value.Copy(t), self.dirty} node.key = common.CopyBytes(self.key) + node.dirty = true return node } @@ -33,3 +35,7 @@ func (self *ShortNode) Hash() interface{} { func (self *ShortNode) Key() []byte { return CompactDecode(string(self.key)) } + +func (self *ShortNode) setDirty(dirty bool) { + self.dirty = dirty +} |