Просмотр исходного кода

Fixed casting error

* big(bytes) == 0 when len(bytes) > 0
obscuren 11 лет назад
Родитель
Сommit
1e985f9865
1 измененных файлов с 4 добавлено и 3 удалено
  1. 4 3
      vm/vm_debug.go

+ 4 - 3
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