Fixed state overwriting issue

This commit is contained in:
obscuren
2014-05-21 01:12:28 +02:00
parent 6ef2832083
commit 3c35ba7c31
5 changed files with 20 additions and 11 deletions

View File

@ -448,7 +448,7 @@ func (vm *Vm) RunClosure(closure *Closure, hook DebugHook) (ret []byte, err erro
} else {
stack.Push(ethutil.BigD(addr))
vm.state.SetStateObject(contract)
vm.state.UpdateStateObject(contract)
}
case oCALL:
require(7)
@ -497,7 +497,7 @@ func (vm *Vm) RunClosure(closure *Closure, hook DebugHook) (ret []byte, err erro
stack.Push(ethutil.BigTrue)
}
vm.state.SetStateObject(contract)
vm.state.UpdateStateObject(contract)
mem.Set(retOffset.Int64(), retSize.Int64(), ret)
} else {
@ -515,7 +515,7 @@ func (vm *Vm) RunClosure(closure *Closure, hook DebugHook) (ret []byte, err erro
receiver := vm.state.GetAccount(stack.Pop().Bytes())
receiver.AddAmount(closure.object.Amount)
vm.state.SetStateObject(receiver)
vm.state.UpdateStateObject(receiver)
closure.object.state.Purge()