From 2119c747c4c7e49bde6994414bcce511f36b3bbc Mon Sep 17 00:00:00 2001 From: zjubfd <296179868@qq.com> Date: Thu, 17 Mar 2022 20:26:27 +0800 Subject: [PATCH] fix code of difflayer not assgin before return --- core/state/statedb.go | 19 ++++++------------- 1 file changed, 6 insertions(+), 13 deletions(-) diff --git a/core/state/statedb.go b/core/state/statedb.go index 5ea84f4032..c523de6a92 100644 --- a/core/state/statedb.go +++ b/core/state/statedb.go @@ -1333,19 +1333,6 @@ func (s *StateDB) Commit(failPostCommitFunc func(), postCommitFuncs ...func() er }() } - if s.snap != nil { - for addr := range s.stateObjectsDirty { - if obj := s.stateObjects[addr]; !obj.deleted { - if obj.code != nil && obj.dirtyCode { - diffLayer.Codes = append(diffLayer.Codes, types.DiffCode{ - Hash: common.BytesToHash(obj.CodeHash()), - Code: obj.code, - }) - } - } - } - } - for addr := range s.stateObjectsDirty { if obj := s.stateObjects[addr]; !obj.deleted { // Write any contract code associated with the state object @@ -1422,6 +1409,12 @@ func (s *StateDB) Commit(failPostCommitFunc func(), postCommitFuncs ...func() er if obj.code != nil && obj.dirtyCode { rawdb.WriteCode(codeWriter, common.BytesToHash(obj.CodeHash()), obj.code) obj.dirtyCode = false + if s.snap != nil { + diffLayer.Codes = append(diffLayer.Codes, types.DiffCode{ + Hash: common.BytesToHash(obj.CodeHash()), + Code: obj.code, + }) + } if codeWriter.ValueSize() > ethdb.IdealBatchSize { if err := codeWriter.Write(); err != nil { return err