diff options
author | Jeffrey Wilcke <jeffrey@ethereum.org> | 2016-10-06 22:14:22 +0800 |
---|---|---|
committer | GitHub <noreply@github.com> | 2016-10-06 22:14:22 +0800 |
commit | 7335a70a020517cc9cebe7ae82c0e49ba133abf1 (patch) | |
tree | cc63625fa07bf3fb28326a01d5c8255a83a83bd1 /core/execution.go | |
parent | 07caa3fccdfe11bbee084c043ac11e7cfae9a6b7 (diff) | |
parent | 3c836dd71b192de24774b1848173a4eb0ca9a63b (diff) | |
download | dexon-7335a70a020517cc9cebe7ae82c0e49ba133abf1.tar dexon-7335a70a020517cc9cebe7ae82c0e49ba133abf1.tar.gz dexon-7335a70a020517cc9cebe7ae82c0e49ba133abf1.tar.bz2 dexon-7335a70a020517cc9cebe7ae82c0e49ba133abf1.tar.lz dexon-7335a70a020517cc9cebe7ae82c0e49ba133abf1.tar.xz dexon-7335a70a020517cc9cebe7ae82c0e49ba133abf1.tar.zst dexon-7335a70a020517cc9cebe7ae82c0e49ba133abf1.zip |
Merge pull request #3092 from fjl/state-journal
core/state: implement reverts by journaling all changes
Diffstat (limited to 'core/execution.go')
-rw-r--r-- | core/execution.go | 8 |
1 files changed, 4 insertions, 4 deletions
diff --git a/core/execution.go b/core/execution.go index 1bc02f7fb..1cb507ee7 100644 --- a/core/execution.go +++ b/core/execution.go @@ -85,7 +85,7 @@ func exec(env vm.Environment, caller vm.ContractRef, address, codeAddr *common.A createAccount = true } - snapshotPreTransfer := env.MakeSnapshot() + snapshotPreTransfer := env.SnapshotDatabase() var ( from = env.Db().GetAccount(caller.Address()) to vm.Account @@ -129,7 +129,7 @@ func exec(env vm.Environment, caller vm.ContractRef, address, codeAddr *common.A if err != nil && (env.RuleSet().IsHomestead(env.BlockNumber()) || err != vm.CodeStoreOutOfGasError) { contract.UseGas(contract.Gas) - env.SetSnapshot(snapshotPreTransfer) + env.RevertToSnapshot(snapshotPreTransfer) } return ret, addr, err @@ -144,7 +144,7 @@ func execDelegateCall(env vm.Environment, caller vm.ContractRef, originAddr, toA return nil, common.Address{}, vm.DepthError } - snapshot := env.MakeSnapshot() + snapshot := env.SnapshotDatabase() var to vm.Account if !env.Db().Exist(*toAddr) { @@ -162,7 +162,7 @@ func execDelegateCall(env vm.Environment, caller vm.ContractRef, originAddr, toA if err != nil { contract.UseGas(contract.Gas) - env.SetSnapshot(snapshot) + env.RevertToSnapshot(snapshot) } return ret, addr, err |