From 5d7526b0b8383fbe98dfd60b5003cff1c0cfe8d8 Mon Sep 17 00:00:00 2001 From: Vadim Zeitlin Date: Wed, 15 Jul 2009 12:36:09 +0000 Subject: [PATCH] fix log target auto creation broken by recent changes git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@61432 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775 --- include/wx/log.h | 7 +++++++ src/common/log.cpp | 8 +++++++- 2 files changed, 14 insertions(+), 1 deletion(-) diff --git a/include/wx/log.h b/include/wx/log.h index 775fac228f..c7bbf0b2db 100644 --- a/include/wx/log.h +++ b/include/wx/log.h @@ -606,6 +606,13 @@ private: static bool EnableThreadLogging(bool enable = true); #endif // wxUSE_THREADS + // get the active log target for the main thread, auto-creating it if + // necessary + // + // this is called from GetActiveTarget() and OnLog() when they're called + // from the main thread + static wxLog *GetMainThreadActiveTarget(); + // called from OnLog() if it's called from the main thread or if we have a // (presumably MT-safe) thread-specific logger and by FlushThreadMessages() // when it plays back the buffered messages logged from the other threads diff --git a/src/common/log.cpp b/src/common/log.cpp index d3595d1234..e0e0c03eea 100644 --- a/src/common/log.cpp +++ b/src/common/log.cpp @@ -294,7 +294,7 @@ wxLog::OnLog(wxLogLevel level, else #endif // wxUSE_THREADS { - logger = ms_pLogger; + logger = GetMainThreadActiveTarget(); if ( !logger ) return; } @@ -464,6 +464,12 @@ wxLog *wxLog::GetActiveTarget() } #endif // wxUSE_THREADS + return GetMainThreadActiveTarget(); +} + +/* static */ +wxLog *wxLog::GetMainThreadActiveTarget() +{ if ( ms_bAutoCreate && ms_pLogger == NULL ) { // prevent infinite recursion if someone calls wxLogXXX() from // wxApp::CreateLogTarget() -- 2.45.2