#include "wx/app.h"
#include "wx/filefn.h"
#include "wx/log.h"
- #include "wx/thread.h"
#include "wx/intl.h"
#include "wx/module.h"
#endif
#include "wx/init.h"
+#include "wx/thread.h"
#include "wx/ptr_scpd.h"
#include "wx/except.h"
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;
}