diff options
author | obscuren <geffobscura@gmail.com> | 2014-12-19 06:59:40 +0800 |
---|---|---|
committer | obscuren <geffobscura@gmail.com> | 2014-12-19 06:59:40 +0800 |
commit | 1e985f986569a68601b052c8949fc6f360e139d9 (patch) | |
tree | a3623bcc7201b9411d4943153333941080385f6f | |
parent | 4789084998553befa5db1bfe5a14881aa567cb9e (diff) | |
download | dexon-1e985f986569a68601b052c8949fc6f360e139d9.tar dexon-1e985f986569a68601b052c8949fc6f360e139d9.tar.gz dexon-1e985f986569a68601b052c8949fc6f360e139d9.tar.bz2 dexon-1e985f986569a68601b052c8949fc6f360e139d9.tar.lz dexon-1e985f986569a68601b052c8949fc6f360e139d9.tar.xz dexon-1e985f986569a68601b052c8949fc6f360e139d9.tar.zst dexon-1e985f986569a68601b052c8949fc6f360e139d9.zip |
Fixed casting error
* big(bytes) == 0 when len(bytes) > 0
-rw-r--r-- | vm/vm_debug.go | 7 |
1 files changed, 4 insertions, 3 deletions
diff --git a/vm/vm_debug.go b/vm/vm_debug.go index d78aff4ce..708aada5b 100644 --- a/vm/vm_debug.go +++ b/vm/vm_debug.go @@ -181,11 +181,12 @@ func (self *DebugVm) Run(me, caller ClosureRef, code []byte, value, gas, price * var mult *big.Int y, x := stack.Peekn() - val := closure.GetStorage(x) - if val.BigInt().Cmp(ethutil.Big0) == 0 && len(y.Bytes()) > 0 { + //val := closure.GetStorage(x) + val := statedb.GetState(closure.Address(), x.Bytes()) + if len(val) == 0 && len(y.Bytes()) > 0 { // 0 => non 0 mult = ethutil.Big3 - } else if val.BigInt().Cmp(ethutil.Big0) != 0 && len(y.Bytes()) == 0 { + } else if len(val) > 0 && len(y.Bytes()) == 0 { statedb.Refund(caller.Address(), GasSStoreRefund) mult = ethutil.Big0 |