X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/67f30682ceb8cd31fda734c7fea884f53b1098fb..9c61c5b04b0b023eb9592bde5633c2111f1940fb:/src/common/init.cpp diff --git a/src/common/init.cpp b/src/common/init.cpp index d9d3cf0dc7..6e9f06fad8 100644 --- a/src/common/init.cpp +++ b/src/common/init.cpp @@ -34,23 +34,25 @@ #include "wx/init.h" #include "wx/thread.h" -#include "wx/ptr_scpd.h" +#include "wx/scopedptr.h" #include "wx/except.h" -#if defined(__WXMSW__) && defined(__WXDEBUG__) +#if defined(__WXMSW__) #include "wx/msw/msvcrt.h" - static struct EnableMemLeakChecking - { - EnableMemLeakChecking() + #ifdef wxCrtSetDbgFlag + static struct EnableMemLeakChecking { - // do check for memory leaks on program exit (another useful flag - // is _CRTDBG_DELAY_FREE_MEM_DF which doesn't free deallocated - // memory which may be used to simulate low-memory condition) - wxCrtSetDbgFlag(_CRTDBG_LEAK_CHECK_DF); - } - } gs_enableLeakChecks; -#endif // __WXMSW__ && __WXDEBUG__ + EnableMemLeakChecking() + { + // check for memory leaks on program exit (another useful flag + // is _CRTDBG_DELAY_FREE_MEM_DF which doesn't free deallocated + // memory which may be used to simulate low-memory condition) + wxCrtSetDbgFlag(_CRTDBG_LEAK_CHECK_DF); + } + } gs_enableLeakChecks; + #endif // wxCrtSetDbgFlag +#endif // __WXMSW__ // ---------------------------------------------------------------------------- // private classes @@ -63,8 +65,9 @@ public: wxDummyConsoleApp() { } virtual int OnRun() { wxFAIL_MSG( _T("unreachable code") ); return 0; } + virtual bool DoYield(bool, long) { return true; } - DECLARE_NO_COPY_CLASS(wxDummyConsoleApp) + wxDECLARE_NO_COPY_CLASS(wxDummyConsoleApp); }; // we need a special kind of auto pointer to wxApp which not only deletes the @@ -93,7 +96,7 @@ public: wxApp::SetInstance(ptr); } - DECLARE_NO_COPY_CLASS(wxAppPtr) + wxDECLARE_NO_COPY_CLASS(wxAppPtr); }; // class to ensure that wxAppBase::CleanUp() is called if our Initialize() @@ -160,7 +163,7 @@ static struct InitData wchar_t **argv; #endif // wxUSE_UNICODE - DECLARE_NO_COPY_CLASS(InitData) + wxDECLARE_NO_COPY_CLASS(InitData); } gs_initData; // ============================================================================ @@ -249,44 +252,6 @@ static bool DoCommonPostInit() return false; } -#if defined(__WXDEBUG__) - // check if event classes implement Clone() correctly - // NOTE: the check is done against _all_ event classes which are linked to - // the executable currently running, which are not necessarily all - // wxWidgets event classes. - const wxClassInfo *ci = wxClassInfo::GetFirst(); - for (; ci; ci = ci->GetNext()) - { - // is this class derived from wxEvent? - if (!ci->IsKindOf(CLASSINFO(wxEvent)) || wxString(ci->GetClassName()) == "wxEvent") - continue; - - if (!ci->IsDynamic()) - { - wxLogWarning("The event class '%s' should have a DECLARE_DYNAMIC_CLASS macro!", - ci->GetClassName()); - continue; - } - - // yes; test if it implements Clone() correctly - wxEvent* test = wxDynamicCast(ci->CreateObject(),wxEvent); - if (test == NULL) - { - wxLogWarning("The event class '%s' should have a DECLARE_DYNAMIC_CLASS macro!", - ci->GetClassName()); - continue; - } - - wxEvent* cloned = test->Clone(); - if (!cloned || cloned->GetClassInfo() != ci) - wxLogWarning("The event class '%s' does not correctly implement Clone()!", - ci->GetClassName()); - - delete cloned; - delete test; - } -#endif - return true; } @@ -297,9 +262,7 @@ bool wxEntryStart(int& argc, wxChar **argv) // initialize wxRTTI if ( !DoCommonPreInit() ) - { return false; - } // first of all, we need an application object @@ -332,22 +295,15 @@ bool wxEntryStart(int& argc, wxChar **argv) // -------------------------------------------- if ( !app->Initialize(argc, argv) ) - { return false; - } // remember, possibly modified (e.g. due to removal of toolkit-specific // parameters), command line arguments in member variables app->argc = argc; app->argv = argv; - wxCallAppCleanup callAppCleanup(app.get()); - // for compatibility call the old initialization function too - if ( !app->OnInitGui() ) - return false; - // common initialization after wxTheApp creation // --------------------------------------------- @@ -483,7 +439,6 @@ int wxEntryReal(int& argc, wxChar **argv) wxTRY { - // app initialization if ( !wxTheApp->CallOnInit() ) {