From d7ab716eea1d1892e3358b1dece6b0e2cd31fce8 Mon Sep 17 00:00:00 2001 From: obscuren Date: Thu, 19 Mar 2015 10:57:02 +0100 Subject: Fixed mkdnode & added some tests --- vm/vm.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'vm/vm.go') diff --git a/vm/vm.go b/vm/vm.go index 4d9e88e1a..c1b365c5c 100644 --- a/vm/vm.go +++ b/vm/vm.go @@ -4,8 +4,8 @@ import ( "fmt" "math/big" - "github.com/ethereum/go-ethereum/crypto" "github.com/ethereum/go-ethereum/common" + "github.com/ethereum/go-ethereum/crypto" "github.com/ethereum/go-ethereum/state" ) -- cgit v1.2.3 From cf45b939a098c9421092226d5c76dbce34eb2dda Mon Sep 17 00:00:00 2001 From: obscuren Date: Thu, 19 Mar 2015 14:31:14 +0100 Subject: fixed tests --- vm/vm.go | 17 ++++------------- 1 file changed, 4 insertions(+), 13 deletions(-) (limited to 'vm/vm.go') diff --git a/vm/vm.go b/vm/vm.go index c1b365c5c..a47818a44 100644 --- a/vm/vm.go +++ b/vm/vm.go @@ -443,24 +443,15 @@ func (self *Vm) Run(context *Context, callData []byte) (ret []byte, err error) { self.Printf(" => %d", l) case CALLDATACOPY: var ( - size = uint64(len(callData)) mOff = stack.pop().Uint64() cOff = stack.pop().Uint64() l = stack.pop().Uint64() ) + data := getData(callData, cOff, l) - if cOff > size { - cOff = 0 - l = 0 - } else if cOff+l > size { - l = 0 - } - - code := callData[cOff : cOff+l] - - mem.Set(mOff, l, code) + mem.Set(mOff, l, data) - self.Printf(" => [%v, %v, %v] %x", mOff, cOff, l, callData[cOff:cOff+l]) + self.Printf(" => [%v, %v, %v] %x", mOff, cOff, l, data) case CODESIZE, EXTCODESIZE: var code []byte if op == EXTCODESIZE { @@ -487,7 +478,7 @@ func (self *Vm) Run(context *Context, callData []byte) (ret []byte, err error) { cOff = stack.pop().Uint64() l = stack.pop().Uint64() ) - codeCopy := getCode(code, cOff, l) + codeCopy := getData(code, cOff, l) mem.Set(mOff, l, codeCopy) -- cgit v1.2.3