]> git.saurik.com Git - wxWidgets.git/blobdiff - src/msw/app.cpp
SF Patch #728691, dangling pointer fix
[wxWidgets.git] / src / msw / app.cpp
index 94b3dfb59f49e697ab31e5d78b8030990eacdc8c..e91969f481261650ed19e4a1c22e42740b548793 100644 (file)
@@ -151,7 +151,11 @@ HICON wxDEFAULT_MDIPARENTFRAME_ICON = (HICON) NULL;
 
 HBRUSH wxDisableButtonBrush = (HBRUSH) 0;
 
+#ifdef __DIGITALMARS__
+extern "C" LRESULT WXDLLEXPORT APIENTRY wxWndProc(HWND, UINT, WPARAM, LPARAM);
+#else
 LRESULT WXDLLEXPORT APIENTRY wxWndProc(HWND, UINT, WPARAM, LPARAM);
+#endif
 
 // FIXME wxUSE_ON_FATAL_EXCEPTION is only supported for VC++ now because it
 //       needs compiler support for Win32 SEH. Others (especially Borland)
@@ -560,13 +564,14 @@ void wxApp::CleanUp()
 #endif
 
     delete wxWinHandleHash;
+    wxWinHandleHash = NULL; // Set to null in case anything later tries to ref it.
 
-    // GL: I'm annoyed ... I don't know where to put this and I don't want to
-    // create a module for that as it's part of the core.
     delete wxPendingEvents;
+    wxPendingEvents = NULL; // Set to null because wxAppBase::wxEvtHandler is destroyed later.
 
 #if wxUSE_THREADS
     delete wxPendingEventsLocker;
+    wxPendingEventsLocker = NULL; // Set to null because wxAppBase::wxEvtHandler is destroyed later.
     // If we don't do the following, we get an apparent memory leak
 #if wxUSE_VALIDATORS
     ((wxEvtHandler&) wxDefaultValidator).ClearEventLocker();