X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/924b84ab9461c95cf5c5386d1091ae0f7a8e7ce7..e77138c0e2871600956d3186ce046454a6fbce21:/src/common/appbase.cpp?ds=sidebyside diff --git a/src/common/appbase.cpp b/src/common/appbase.cpp index d9f65368b6..fd408ab0d9 100644 --- a/src/common/appbase.cpp +++ b/src/common/appbase.cpp @@ -57,11 +57,8 @@ #endif #if defined(__WXMAC__) - // VZ: MacTypes.h is enough under Mac OS X (where I could test it) but - // I don't know which headers are needed under earlier systems so - // include everything when in doubt #ifdef __DARWIN__ - #include "MacTypes.h" + #include #else #include "wx/mac/private.h" // includes mac headers #endif @@ -76,6 +73,13 @@ #endif // wxUSE_STACKWALKER #endif // __WXDEBUG__ +// wxABI_VERSION can be defined when compiling applications but it should be +// left undefined when compiling the library itself, it is then set to its +// default value in version.h +#if wxABI_VERSION != wxMAJOR_VERSION * 10000 + wxMINOR_VERSION * 100 + 99 +#error "wxABI_VERSION should not be defined when compiling the library" +#endif + // ---------------------------------------------------------------------------- // private functions prototypes // ---------------------------------------------------------------------------- @@ -140,11 +144,11 @@ wxAppConsole::~wxAppConsole() // initilization/cleanup // ---------------------------------------------------------------------------- -bool wxAppConsole::Initialize(int& argc, wxChar **argv) +bool wxAppConsole::Initialize(int& argcOrig, wxChar **argvOrig) { // remember the command line arguments - this->argc = argc; - this->argv = argv; + argc = argcOrig; + argv = argvOrig; #ifndef __WXPALMOS__ if ( m_appName.empty() && argv ) @@ -203,10 +207,6 @@ int wxAppConsole::OnExit() delete wxConfigBase::Set((wxConfigBase *) NULL); #endif // wxUSE_CONFIG - // use Set(NULL) and not Get() to avoid creating a message output object on - // demand when we just want to delete it - delete wxMessageOutput::Set(NULL); - return 0; } @@ -316,26 +316,8 @@ wxAppConsole::HandleEvent(wxEvtHandler *handler, wxEventFunction func, wxEvent& event) const { - // by default, call wxApp::OnExceptionInMainLoop if an exception occurs - try - { - handler->DoHandleEvent(func, event); - } - catch ( ... ) - { - wxConstCast(this, wxAppConsole)->OnExceptionInMainLoop(); - } -} - -bool -wxAppConsole::OnExceptionInMainLoop() -{ - throw; - - // some compilers are too stupid to know that we never return after throw -#if defined(__DMC__) || (defined(_MSC_VER) && _MSC_VER < 1200) - return false; -#endif + // by default, simply call the handler + (handler->*func)(event); } #endif // wxUSE_EXCEPTIONS @@ -714,12 +696,6 @@ static wxString GetAssertStackTrace() { wxString stackTrace; -#if wxUSE_DBGHELP - // check that we can get the stack trace before trying to do it - if ( !wxDbgHelpDLL::Init() ) - return stackTrace; -#endif - class StackDump : public wxStackWalker { public: @@ -730,7 +706,11 @@ static wxString GetAssertStackTrace() protected: virtual void OnStackFrame(const wxStackFrame& frame) { - m_stackTrace << wxString::Format(_T("[%02d] "), frame.GetLevel()); + m_stackTrace << wxString::Format + ( + _T("[%02d] "), + wx_truncate_cast(int, frame.GetLevel()) + ); wxString name = frame.GetName(); if ( !name.empty() ) @@ -739,11 +719,7 @@ static wxString GetAssertStackTrace() } else { - m_stackTrace << wxString::Format - ( - _T("0x%08lx"), - (unsigned long)frame.GetAddress() - ); + m_stackTrace << wxString::Format(_T("%p"), frame.GetAddress()); } if ( frame.HasSourceLocation() )