Commit 7adf065b authored by obscuren's avatar obscuren

Simple effective VM optimisation

Added a debug flag to the VM which determines if VM output is shown
regardless of the log level set.
parent 6ea7aae2
...@@ -16,6 +16,8 @@ type Vm struct { ...@@ -16,6 +16,8 @@ type Vm struct {
logStr string logStr string
err error err error
// For logging
debug bool
Dbg Debugger Dbg Debugger
...@@ -32,7 +34,7 @@ func New(env Environment) *Vm { ...@@ -32,7 +34,7 @@ func New(env Environment) *Vm {
lt = LogTyDiff lt = LogTyDiff
} }
return &Vm{env: env, logTy: lt, Recoverable: true} return &Vm{debug: false, env: env, logTy: lt, Recoverable: true}
} }
func (self *Vm) Run(me, caller ContextRef, code []byte, value, gas, price *big.Int, callData []byte) (ret []byte, err error) { func (self *Vm) Run(me, caller ContextRef, code []byte, value, gas, price *big.Int, callData []byte) (ret []byte, err error) {
...@@ -938,17 +940,21 @@ func (self *Vm) RunPrecompiled(p *PrecompiledAccount, callData []byte, context * ...@@ -938,17 +940,21 @@ func (self *Vm) RunPrecompiled(p *PrecompiledAccount, callData []byte, context *
} }
func (self *Vm) Printf(format string, v ...interface{}) VirtualMachine { func (self *Vm) Printf(format string, v ...interface{}) VirtualMachine {
if self.logTy == LogTyPretty { if self.debug {
self.logStr += fmt.Sprintf(format, v...) if self.logTy == LogTyPretty {
self.logStr += fmt.Sprintf(format, v...)
}
} }
return self return self
} }
func (self *Vm) Endl() VirtualMachine { func (self *Vm) Endl() VirtualMachine {
if self.logTy == LogTyPretty { if self.debug {
vmlogger.Debugln(self.logStr) if self.logTy == LogTyPretty {
self.logStr = "" vmlogger.Debugln(self.logStr)
self.logStr = ""
}
} }
return self return self
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment