diff options
author | obscuren <geffobscura@gmail.com> | 2014-12-02 03:49:56 +0800 |
---|---|---|
committer | obscuren <geffobscura@gmail.com> | 2014-12-02 03:49:56 +0800 |
commit | a22056db5988bfa2b1354e0092eabb734c30701c (patch) | |
tree | 3f85f85c7bf80422262c5c521e883aeb358dadc0 | |
parent | beb7d35c4033063e4111a51ebf88fabb43bc22b8 (diff) | |
download | dexon-a22056db5988bfa2b1354e0092eabb734c30701c.tar.gz dexon-a22056db5988bfa2b1354e0092eabb734c30701c.tar.zst dexon-a22056db5988bfa2b1354e0092eabb734c30701c.zip |
Make an attempt to pay for the gas prior to expanding the mem.
-rw-r--r-- | tests/vm/gh_test.go | 5 | ||||
-rw-r--r-- | vm/closure.go | 2 | ||||
-rw-r--r-- | vm/vm_debug.go | 3 |
3 files changed, 7 insertions, 3 deletions
diff --git a/tests/vm/gh_test.go b/tests/vm/gh_test.go index 7d98983e7..bd107249b 100644 --- a/tests/vm/gh_test.go +++ b/tests/vm/gh_test.go @@ -2,6 +2,7 @@ package vm import ( "bytes" + "fmt" "testing" "github.com/ethereum/go-ethereum/ethutil" @@ -44,6 +45,7 @@ func RunVmTest(p string, t *testing.T) { helper.CreateFileTests(t, p, &tests) for name, test := range tests { + fmt.Println(name) state := state.New(helper.NewTrie()) for addr, account := range test.Pre { obj := StateObjectFromAccount(addr, account) @@ -113,7 +115,7 @@ func TestEnvironmentalInfo(t *testing.T) { } func TestFlowOperation(t *testing.T) { - helper.Logger.SetLogLevel(5) + //helper.Logger.SetLogLevel(5) const fn = "../files/vmtests/vmIOandFlowOperationsTest.json" RunVmTest(fn, t) } @@ -124,6 +126,7 @@ func TestPushDupSwap(t *testing.T) { } func TestVMSha3(t *testing.T) { + helper.Logger.SetLogLevel(5) const fn = "../files/vmtests/vmSha3Test.json" RunVmTest(fn, t) } diff --git a/vm/closure.go b/vm/closure.go index ef9bbca93..5bd8c1bb8 100644 --- a/vm/closure.go +++ b/vm/closure.go @@ -64,7 +64,7 @@ func (c *Closure) GetOp(x int) OpCode { } func (c *Closure) GetByte(x int) byte { - if x < len(c.Code) { + if x > -1 && x < len(c.Code) { return c.Code[x] } diff --git a/vm/vm_debug.go b/vm/vm_debug.go index b9c1d4bc6..4daa3ab5b 100644 --- a/vm/vm_debug.go +++ b/vm/vm_debug.go @@ -277,7 +277,6 @@ func (self *DebugVm) RunClosure(closure *Closure) (ret []byte, err error) { addStepGasUsage(memGasUsage) - mem.Resize(newMemSize.Uint64()) } } @@ -295,6 +294,8 @@ func (self *DebugVm) RunClosure(closure *Closure) (ret []byte, err error) { return closure.Return(nil), OOG(gas, tmp) } + mem.Resize(newMemSize.Uint64()) + switch op { // 0x20 range case ADD: |