static bool DoCommonPreInit()
{
#if wxUSE_LOG
+ // Reset logging in case we were cleaned up and are being reinitialized.
+ wxLog::DoCreateOnDemand();
+
// install temporary log sink: we can't use wxLogGui before wxApp is
// constructed and if we use wxLogStderr, all messages during
// initialization simply disappear under Windows
{
wxTheApp->CleanUp();
- delete wxTheApp;
+ // reset the global pointer to it to NULL before destroying it as in
+ // some circumstances this can result in executing the code using
+ // wxTheApp and using half-destroyed object is no good
+ wxAppConsole * const app = wxApp::GetInstance();
wxApp::SetInstance(NULL);
+ delete app;
}