X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/6d167489bdf17d55d9bd11be834bc17277661063..270a909e20a2c652fd816ad14407113ad0319c9d:/src/msw/app.cpp?ds=sidebyside diff --git a/src/msw/app.cpp b/src/msw/app.cpp index 3528af8915..b3da445a29 100644 --- a/src/msw/app.cpp +++ b/src/msw/app.cpp @@ -100,7 +100,6 @@ extern wxList WXDLLEXPORT wxPendingDelete; extern void wxSetKeyboardHook(bool doIt); extern wxCursor *g_globalCursor; -HINSTANCE wxhInstance = 0; MSG s_currentMsg; wxApp *wxTheApp = NULL; @@ -594,7 +593,17 @@ int wxEntry(WXHINSTANCE hInstance, // (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); - +#ifdef __MWERKS__ +#if (defined(__WXDEBUG__) && wxUSE_MEMORY_TRACING) || wxUSE_DEBUG_CONTEXT + // This seems to be necessary since there are 'rogue' + // objects present at this point (perhaps global objects?) + // Setting a checkpoint will ignore them as far as the + // memory checking facility is concerned. + // Of course you may argue that memory allocated in globals should be + // checked, but this is a reasonable compromise. + wxDebugContext::SetCheckpoint(); +#endif +#endif // take everything into a try-except block in release build // FIXME other compilers must support Win32 SEH (structured exception // handling) too, just find the appropriate keyword in their docs! @@ -1217,11 +1226,16 @@ void wxWakeUpIdle() { // Send the top window a dummy message so idle handler processing will // start up again. Doing it this way ensures that the idle handler - // wakes up in the right thread. + // wakes up in the right thread (see also wxWakeUpMainThread() which does + // the same for the main app thread only) wxWindow *topWindow = wxTheApp->GetTopWindow(); - if ( topWindow ) { - HWND hWnd = (HWND)topWindow->GetHWND(); - ::PostMessage(hWnd, WM_NULL, 0, 0); + if ( topWindow ) + { + if ( !::PostMessage(GetHwndOf(topWindow), WM_NULL, 0, 0) ) + { + // should never happen + wxLogLastError("PostMessage(WM_NULL)"); + } } } @@ -1250,17 +1264,6 @@ wxApp::GetStdIcon(int which) const } } - -HINSTANCE wxGetInstance() -{ - return wxhInstance; -} - -void wxSetInstance(HINSTANCE hInst) -{ - wxhInstance = hInst; -} - // For some reason, with MSVC++ 1.5, WinMain isn't linked in properly // if in a separate file. So include it here to ensure it's linked. #if (defined(__VISUALC__) && !defined(__WIN32__)) || (defined(__GNUWIN32__) && !defined(__TWIN32__))