]> git.saurik.com Git - wxWidgets.git/blobdiff - src/common/init.cpp
moved SEH stuff to crashrpt.cpp
[wxWidgets.git] / src / common / init.cpp
index 14d60569292511b2f65d035f2bf02436e8855408..fe406b7be92f1289a74f76eb32490bbdc4314d66 100644 (file)
@@ -111,6 +111,15 @@ public:
     ~wxCleanupOnExit() { wxEntryCleanup(); }
 };
 
+// ----------------------------------------------------------------------------
+// private functions
+// ----------------------------------------------------------------------------
+
+// suppress warnings about unused variables
+static inline void Use(void *) { }
+
+#define WX_SUPPRESS_UNUSED_WARN(x) Use(&x)
+
 // ----------------------------------------------------------------------------
 // initialization data
 // ----------------------------------------------------------------------------
@@ -380,8 +389,10 @@ int wxEntryReal(int& argc, wxChar **argv)
     // below returns or throws
     wxCleanupOnExit cleanupOnExit;
 
+    WX_SUPPRESS_UNUSED_WARN(cleanupOnExit);
+
     // app initialization
-    if ( !wxTheApp->OnInit() )
+    if ( !wxTheApp->CallOnInit() )
     {
         // don't call OnExit() if OnInit() failed
         return -1;
@@ -415,6 +426,11 @@ int wxEntryReal(int& argc, wxChar **argv)
 // OnFatalException() if necessary
 #if defined(__WXMSW__) && wxUSE_ON_FATAL_EXCEPTION
 
+#ifdef __WXWINCE__
+// For ExitThread
+#include "wx/msw/private.h"
+#endif
+
 extern unsigned long wxGlobalSEHandler();
 
 int wxEntry(int& argc, wxChar **argv)
@@ -425,10 +441,17 @@ int wxEntry(int& argc, wxChar **argv)
     }
     __except ( wxGlobalSEHandler() )
     {
+#ifdef __WXWINCE__
+        ::ExitThread(3); // the same exit code as abort()
+#else
         ::ExitProcess(3); // the same exit code as abort()
+#endif
 
+#if !defined(_MSC_VER) || _MSC_VER < 1300
         // this code is unreachable but put it here to suppress warnings
+        // from some compilers
         return -1;
+#endif
     }
 }