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
This commit is contained in:
Vadim Zeitlin 2009-07-15 12:36:09 +00:00
parent 94370e7670
commit 5d7526b0b8
2 changed files with 14 additions and 1 deletions

View File

@ -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

View File

@ -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()