X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/a4de7e8ccf4bf69d150c29c9a3d53e5754c8b8a9..2cdd63c6b1d473ffd7726f619085997b0737952e:/src/common/init.cpp diff --git a/src/common/init.cpp b/src/common/init.cpp index 80e2c7bc5e..a225bf6833 100644 --- a/src/common/init.cpp +++ b/src/common/init.cpp @@ -312,7 +312,7 @@ bool wxEntryStart(int& argc, char **argv) // clean up // ---------------------------------------------------------------------------- -// cleanup done before destroying wxTheApp +// cleanup done before destroying wxTheApp static void DoCommonPreCleanup() { #if wxUSE_LOG @@ -369,12 +369,19 @@ void wxEntryCleanup() // wxEntry // ---------------------------------------------------------------------------- -#if !defined(__WXMSW__) || !wxUSE_ON_FATAL_EXCEPTION +// for MSW the real wxEntry is defined in msw/main.cpp +#ifndef __WXMSW__ #define wxEntryReal wxEntry -#endif // !(__WXMSW__ && wxUSE_ON_FATAL_EXCEPTION) +#endif // !__WXMSW__ int wxEntryReal(int& argc, wxChar **argv) { +#if wxUSE_LOG + // Create a non-GUI log target, to be used until GUI (if any) is ready. + // Target will be reset by wxAppConsole::Initialize, when GUI logging will work. + wxLog::GetActiveTarget(); +#endif + // library initialization if ( !wxEntryStart(argc, argv) ) { @@ -412,41 +419,6 @@ int wxEntryReal(int& argc, wxChar **argv) wxCATCH_ALL( wxTheApp->OnUnhandledException(); return -1; ) } -// wrap real wxEntry in a try-except block to be able to call -// OnFatalException() if necessary -#if defined(__WXMSW__) && wxUSE_ON_FATAL_EXCEPTION - -#ifdef __WXWINCE__ -// For ExitThread -#include "wx/msw/private.h" -#endif - -extern unsigned long wxGlobalSEHandler(EXCEPTION_POINTERS *pExcPtrs); - -int wxEntry(int& argc, wxChar **argv) -{ - __try - { - return wxEntryReal(argc, argv); - } - __except ( wxGlobalSEHandler(GetExceptionInformation()) ) - { -#ifdef __WXWINCE__ - ::ExitThread(3); // the same exit code as abort() -#else - ::ExitProcess(3); // the same exit code as abort() -#endif - -#if !defined(_MSC_VER) || _MSC_VER < 1300 - // this code is unreachable but put it here to suppress warnings - // from some compilers - return -1; -#endif - } -} - -#endif // __WXMSW__ && wxUSE_ON_FATAL_EXCEPTION - #if wxUSE_UNICODE // as with wxEntryStart, we provide an ANSI wrapper