From 97e49b1274c76ca2cb7fb71c274c7022b2497f03 Mon Sep 17 00:00:00 2001 From: Dmitry Shmatko Date: Sun, 24 Jun 2018 21:39:12 +0300 Subject: [PATCH] core/vm: Put debug state capture before memory resize --- core/vm/interpreter.go | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/core/vm/interpreter.go b/core/vm/interpreter.go index 7090e0261f..4040008021 100644 --- a/core/vm/interpreter.go +++ b/core/vm/interpreter.go @@ -189,15 +189,16 @@ func (in *Interpreter) Run(contract *Contract, input []byte) (ret []byte, err er if err != nil || !contract.UseGas(cost) { return nil, ErrOutOfGas } - if memorySize > 0 { - mem.Resize(memorySize) - } if in.cfg.Debug { in.cfg.Tracer.CaptureState(in.evm, pc, op, gasCopy, cost, mem, stack, contract, in.evm.depth, err) logged = true } + if memorySize > 0 { + mem.Resize(memorySize) + } + // execute the operation res, err := operation.execute(&pc, in.evm, contract, mem, stack) // verifyPool is a build flag. Pool verification makes sure the integrity