From 83cc08f67060faf9c53bd1f81b69a68c6311d345 Mon Sep 17 00:00:00 2001 From: obscuren Date: Thu, 12 Mar 2015 18:22:35 +0100 Subject: [PATCH] Changed to big.Int.Not --- vm/vm.go | 17 +++++++---------- 1 file changed, 7 insertions(+), 10 deletions(-) diff --git a/vm/vm.go b/vm/vm.go index 6e4a54844f..0cf1f9af38 100644 --- a/vm/vm.go +++ b/vm/vm.go @@ -254,12 +254,10 @@ func (self *Vm) Run(me, caller ContextRef, code []byte, value, gas, price *big.I stack.push(num) } case NOT: - base.Sub(Pow256, stack.pop()).Sub(base, ethutil.Big1) - - // Not needed - base = U256(base) - - stack.push(base) + stack.push(U256(new(big.Int).Not(stack.pop()))) + //base.Sub(Pow256, stack.pop()).Sub(base, ethutil.Big1) + //base = U256(base) + //stack.push(base) case LT: x, y := stack.pop(), stack.pop() self.Printf(" %v < %v", x, y) @@ -349,16 +347,15 @@ func (self *Vm) Run(me, caller ContextRef, code []byte, value, gas, price *big.I stack.push(base) case ADDMOD: - x := stack.pop() y := stack.pop() z := stack.pop() - add := new(big.Int).Add(x, y) - if len(z.Bytes()) > 0 { // NOT 0x0 + if z.Cmp(Zero) > 0 { + add := U256(new(big.Int).Add(x, y)) base.Mod(add, z) - U256(base) + base = U256(base) } self.Printf(" %v + %v %% %v = %v", x, y, z, base)