From ebbfc254205abcaf03beda78728a490aa05561e8 Mon Sep 17 00:00:00 2001 From: Alex Date: Fri, 15 Jul 2022 23:49:01 +0300 Subject: [PATCH] Don't evaluate arguments passed to KI_TRACE if tracing is disabled. --- common/trace_helpers.cpp | 17 ++++++++++++++--- include/trace_helpers.h | 6 +++++- 2 files changed, 19 insertions(+), 4 deletions(-) diff --git a/common/trace_helpers.cpp b/common/trace_helpers.cpp index c1bd0b4332..8346c25650 100644 --- a/common/trace_helpers.cpp +++ b/common/trace_helpers.cpp @@ -292,17 +292,27 @@ TRACE_MANAGER& TRACE_MANAGER::Instance() return *self; } -void TRACE_MANAGER::traceV( const wxString& aWhat, const wxString& aFmt, va_list vargs ) + +bool TRACE_MANAGER::IsTraceEnabled( const wxString& aWhat ) { if( !m_printAllTraces ) { if( !m_globalTraceEnabled ) - return; + return false; if( m_enabledTraces.find( aWhat ) == m_enabledTraces.end() ) - return; + return false; } + return true; +} + + +void TRACE_MANAGER::traceV( const wxString& aWhat, const wxString& aFmt, va_list vargs ) +{ + if( !IsTraceEnabled( aWhat ) ) + return; + wxString str; str.PrintfV( aFmt, vargs ); @@ -311,6 +321,7 @@ void TRACE_MANAGER::traceV( const wxString& aWhat, const wxString& aFmt, va_list #endif } + void TRACE_MANAGER::init() { wxString traceVars; diff --git a/include/trace_helpers.h b/include/trace_helpers.h index c1e4dc3ba2..10e5e13632 100644 --- a/include/trace_helpers.h +++ b/include/trace_helpers.h @@ -255,6 +255,8 @@ public: } #endif + bool IsTraceEnabled( const wxString& aWhat ); + private: void traceV( const wxString& aWhat, const wxString& aFmt, va_list vargs ); void init(); @@ -264,6 +266,8 @@ private: bool m_printAllTraces; }; -#define KI_TRACE( ... ) TRACE_MANAGER::Instance().Trace( __VA_ARGS__ ) +#define KI_TRACE( aWhat, ... ) \ + if( TRACE_MANAGER::Instance().IsTraceEnabled( aWhat ) ) \ + TRACE_MANAGER::Instance().Trace( aWhat, __VA_ARGS__ ) #endif // _TRACE_HELPERS_H_