Make ApplyRet's GasOutputs a pointer, return nil when unused

This commit is contained in:
Aayush Rajasekaran 2020-10-15 21:12:38 -04:00
parent 6f86b95f62
commit 89f46cb5cc
4 changed files with 13 additions and 12 deletions

View File

@ -116,7 +116,6 @@ func (sm *StateManager) Call(ctx context.Context, msg *types.Message, ts *types.
MsgCid: msg.Cid(), MsgCid: msg.Cid(),
Msg: msg, Msg: msg,
MsgRct: &ret.MessageReceipt, MsgRct: &ret.MessageReceipt,
GasCost: MakeMsgGasCost(msg, ret),
ExecutionTrace: ret.ExecutionTrace, ExecutionTrace: ret.ExecutionTrace,
Error: errs, Error: errs,
Duration: ret.Duration, Duration: ret.Duration,

View File

@ -498,7 +498,7 @@ func UpgradeFaucetBurnRecovery(ctx context.Context, sm *StateManager, cb ExecCal
Subcalls: subcalls, Subcalls: subcalls,
}, },
Duration: 0, Duration: 0,
GasCosts: vm.ZeroGasOutputs(), GasCosts: nil,
}); err != nil { }); err != nil {
return cid.Undef, xerrors.Errorf("recording transfers: %w", err) return cid.Undef, xerrors.Errorf("recording transfers: %w", err)
} }
@ -799,7 +799,7 @@ func splitGenesisMultisig(ctx context.Context, cb ExecCallback, addr address.Add
Subcalls: subcalls, Subcalls: subcalls,
}, },
Duration: 0, Duration: 0,
GasCosts: vm.ZeroGasOutputs(), GasCosts: nil,
}); err != nil { }); err != nil {
return xerrors.Errorf("recording transfers: %w", err) return xerrors.Errorf("recording transfers: %w", err)
} }

View File

@ -203,13 +203,15 @@ func traceFunc(trace *[]*api.InvocResult) func(mcid cid.Cid, msg *types.Message,
MsgCid: mcid, MsgCid: mcid,
Msg: msg, Msg: msg,
MsgRct: &ret.MessageReceipt, MsgRct: &ret.MessageReceipt,
GasCost: MakeMsgGasCost(msg, ret),
ExecutionTrace: ret.ExecutionTrace, ExecutionTrace: ret.ExecutionTrace,
Duration: ret.Duration, Duration: ret.Duration,
} }
if ret.ActorErr != nil { if ret.ActorErr != nil {
ir.Error = ret.ActorErr.Error() ir.Error = ret.ActorErr.Error()
} }
if ret.GasCosts != nil {
ir.GasCost = MakeMsgGasCost(msg, ret)
}
*trace = append(*trace, ir) *trace = append(*trace, ir)
return nil return nil
} }

View File

@ -214,7 +214,7 @@ type ApplyRet struct {
ActorErr aerrors.ActorError ActorErr aerrors.ActorError
ExecutionTrace types.ExecutionTrace ExecutionTrace types.ExecutionTrace
Duration time.Duration Duration time.Duration
GasCosts GasOutputs GasCosts *GasOutputs
} }
func (vm *VM) send(ctx context.Context, msg *types.Message, parent *Runtime, func (vm *VM) send(ctx context.Context, msg *types.Message, parent *Runtime,
@ -361,7 +361,7 @@ func (vm *VM) ApplyImplicitMessage(ctx context.Context, msg *types.Message) (*Ap
}, },
ActorErr: actorErr, ActorErr: actorErr,
ExecutionTrace: rt.executionTrace, ExecutionTrace: rt.executionTrace,
GasCosts: GasOutputs{}, GasCosts: nil,
Duration: time.Since(start), Duration: time.Since(start),
}, actorErr }, actorErr
} }
@ -397,7 +397,7 @@ func (vm *VM) ApplyMessage(ctx context.Context, cmsg types.ChainMsg) (*ApplyRet,
ExitCode: exitcode.SysErrOutOfGas, ExitCode: exitcode.SysErrOutOfGas,
GasUsed: 0, GasUsed: 0,
}, },
GasCosts: gasOutputs, GasCosts: &gasOutputs,
Duration: time.Since(start), Duration: time.Since(start),
}, nil }, nil
} }
@ -417,7 +417,7 @@ func (vm *VM) ApplyMessage(ctx context.Context, cmsg types.ChainMsg) (*ApplyRet,
GasUsed: 0, GasUsed: 0,
}, },
ActorErr: aerrors.Newf(exitcode.SysErrSenderInvalid, "actor not found: %s", msg.From), ActorErr: aerrors.Newf(exitcode.SysErrSenderInvalid, "actor not found: %s", msg.From),
GasCosts: gasOutputs, GasCosts: &gasOutputs,
Duration: time.Since(start), Duration: time.Since(start),
}, nil }, nil
} }
@ -434,7 +434,7 @@ func (vm *VM) ApplyMessage(ctx context.Context, cmsg types.ChainMsg) (*ApplyRet,
GasUsed: 0, GasUsed: 0,
}, },
ActorErr: aerrors.Newf(exitcode.SysErrSenderInvalid, "send from not account actor: %s", fromActor.Code), ActorErr: aerrors.Newf(exitcode.SysErrSenderInvalid, "send from not account actor: %s", fromActor.Code),
GasCosts: gasOutputs, GasCosts: &gasOutputs,
Duration: time.Since(start), Duration: time.Since(start),
}, nil }, nil
} }
@ -450,7 +450,7 @@ func (vm *VM) ApplyMessage(ctx context.Context, cmsg types.ChainMsg) (*ApplyRet,
ActorErr: aerrors.Newf(exitcode.SysErrSenderStateInvalid, ActorErr: aerrors.Newf(exitcode.SysErrSenderStateInvalid,
"actor nonce invalid: msg:%d != state:%d", msg.Nonce, fromActor.Nonce), "actor nonce invalid: msg:%d != state:%d", msg.Nonce, fromActor.Nonce),
GasCosts: gasOutputs, GasCosts: &gasOutputs,
Duration: time.Since(start), Duration: time.Since(start),
}, nil }, nil
} }
@ -466,7 +466,7 @@ func (vm *VM) ApplyMessage(ctx context.Context, cmsg types.ChainMsg) (*ApplyRet,
}, },
ActorErr: aerrors.Newf(exitcode.SysErrSenderStateInvalid, ActorErr: aerrors.Newf(exitcode.SysErrSenderStateInvalid,
"actor balance less than needed: %s < %s", types.FIL(fromActor.Balance), types.FIL(gascost)), "actor balance less than needed: %s < %s", types.FIL(fromActor.Balance), types.FIL(gascost)),
GasCosts: gasOutputs, GasCosts: &gasOutputs,
Duration: time.Since(start), Duration: time.Since(start),
}, nil }, nil
} }
@ -560,7 +560,7 @@ func (vm *VM) ApplyMessage(ctx context.Context, cmsg types.ChainMsg) (*ApplyRet,
}, },
ActorErr: actorErr, ActorErr: actorErr,
ExecutionTrace: rt.executionTrace, ExecutionTrace: rt.executionTrace,
GasCosts: gasOutputs, GasCosts: &gasOutputs,
Duration: time.Since(start), Duration: time.Since(start),
}, nil }, nil
} }