diff --git a/wxPython/CHANGES.txt b/wxPython/CHANGES.txt index 124170f4d2..8886bb0bfe 100644 --- a/wxPython/CHANGES.txt +++ b/wxPython/CHANGES.txt @@ -17,9 +17,16 @@ unicode. Fixed problem where the wrong class name could sometimes be used for OOR. -Fixed a interpreter lock problem in the __eq__ and __ne__ methods in +Fixed an interpreter lock problem in the __eq__ and __ne__ methods in wxSize and etc. +Updated PyCrust to version 0.9 + +Instead of always logging C++ assertions, added wxPYAPP_ASSERT_LOG +flag to turn it on. In most cases turning it into an exception (the +default behavior) is enough. See below in the 2.3.4.1 notes for more +details. + diff --git a/wxPython/src/helpers.cpp b/wxPython/src/helpers.cpp index cb2a1eeb38..580f7c235c 100644 --- a/wxPython/src/helpers.cpp +++ b/wxPython/src/helpers.cpp @@ -198,11 +198,6 @@ void wxPyApp::OnAssert(const wxChar *file, buf += msg; } - // Send it to the normal log destination, but only if - // not _DIALOG because it will call this too - if ( !(m_assertMode & wxPYAPP_ASSERT_DIALOG)) - wxLogDebug(buf); - // set the exception wxPyBeginBlockThreads(); PyObject* s = wx2PyString(buf); @@ -215,6 +210,20 @@ void wxPyApp::OnAssert(const wxChar *file, // NULL, signalling the exception to Python. } + // Send it to the normal log destination, but only if + // not _DIALOG because it will call this too + if ( (m_assertMode & wxPYAPP_ASSERT_LOG) && !(m_assertMode & wxPYAPP_ASSERT_DIALOG)) { + wxString buf; + buf.Alloc(4096); + buf.Printf(wxT("%s(%d): assert \"%s\" failed"), + file, line, cond); + if (msg != NULL) { + buf += wxT(": "); + buf += msg; + } + wxLogDebug(buf); + } + // do the normal wx assert dialog? if (m_assertMode & wxPYAPP_ASSERT_DIALOG) wxApp::OnAssert(file, line, cond, msg); diff --git a/wxPython/src/helpers.h b/wxPython/src/helpers.h index dc14a66fe7..ce8c873553 100644 --- a/wxPython/src/helpers.h +++ b/wxPython/src/helpers.h @@ -427,7 +427,8 @@ void wxPyCBH_delete(wxPyCallbackHelper* cbh); enum { wxPYAPP_ASSERT_SUPPRESS = 1, wxPYAPP_ASSERT_EXCEPTION = 2, - wxPYAPP_ASSERT_DIALOG = 4 + wxPYAPP_ASSERT_DIALOG = 4, + wxPYAPP_ASSERT_LOG = 8 }; class wxPyApp: public wxApp diff --git a/wxPython/src/wx.i b/wxPython/src/wx.i index e2dfce3419..747fa6839e 100644 --- a/wxPython/src/wx.i +++ b/wxPython/src/wx.i @@ -68,7 +68,8 @@ wxSize wxDefaultSize; enum { wxPYAPP_ASSERT_SUPPRESS = 1, wxPYAPP_ASSERT_EXCEPTION = 2, - wxPYAPP_ASSERT_DIALOG = 4 + wxPYAPP_ASSERT_DIALOG = 4, + wxPYAPP_ASSERT_LOG = 8 };