diff options
author | obscuren <geffobscura@gmail.com> | 2014-07-02 07:04:21 +0800 |
---|---|---|
committer | obscuren <geffobscura@gmail.com> | 2014-07-02 07:04:21 +0800 |
commit | d15952c867f5c31fa68600754bd17c76a992a70e (patch) | |
tree | ed98e63739e9cc60e11a37dc9291de653297803a /ethchain/vm.go | |
parent | 1954ef47e67762f0308544e3a17976e4c3927e32 (diff) | |
download | go-tangerine-d15952c867f5c31fa68600754bd17c76a992a70e.tar go-tangerine-d15952c867f5c31fa68600754bd17c76a992a70e.tar.gz go-tangerine-d15952c867f5c31fa68600754bd17c76a992a70e.tar.bz2 go-tangerine-d15952c867f5c31fa68600754bd17c76a992a70e.tar.lz go-tangerine-d15952c867f5c31fa68600754bd17c76a992a70e.tar.xz go-tangerine-d15952c867f5c31fa68600754bd17c76a992a70e.tar.zst go-tangerine-d15952c867f5c31fa68600754bd17c76a992a70e.zip |
Moved debug hook to Vm directly
Diffstat (limited to 'ethchain/vm.go')
-rw-r--r-- | ethchain/vm.go | 12 |
1 files changed, 8 insertions, 4 deletions
diff --git a/ethchain/vm.go b/ethchain/vm.go index 0b8799a12..7acca9b36 100644 --- a/ethchain/vm.go +++ b/ethchain/vm.go @@ -52,8 +52,12 @@ type Vm struct { logStr string err error + + Hook DebugHook } +type DebugHook func(step int, op OpCode, mem *Memory, stack *Stack, stateObject *StateObject) bool + type RuntimeVars struct { Origin []byte Block *Block @@ -91,7 +95,7 @@ var Pow256 = ethutil.BigPow(2, 256) var isRequireError = false -func (vm *Vm) RunClosure(closure *Closure, hook DebugHook) (ret []byte, err error) { +func (vm *Vm) RunClosure(closure *Closure) (ret []byte, err error) { // Recover from any require exception defer func() { if r := recover(); r != nil { @@ -642,7 +646,7 @@ func (vm *Vm) RunClosure(closure *Closure, hook DebugHook) (ret []byte, err erro // Call the closure and set the return value as // main script. var err error - c.Script, gas, err = c.Call(vm, nil, hook) + c.Script, gas, err = c.Call(vm, nil) if err != nil { stack.Push(ethutil.BigFalse) @@ -738,8 +742,8 @@ func (vm *Vm) RunClosure(closure *Closure, hook DebugHook) (ret []byte, err erro vm.Endl() - if hook != nil { - if !hook(prevStep, op, mem, stack, closure.Object()) { + if vm.Hook != nil { + if !vm.Hook(prevStep, op, mem, stack, closure.Object()) { return nil, nil } } |