#ifdef __WXDEBUG__
-void wxPyApp::OnAssert(const wxChar *file,
- int line,
- const wxChar *cond,
- const wxChar *msg) {
-
+void wxPyApp::OnAssertFailure(const wxChar *file,
+ int line,
+ const wxChar *func,
+ const wxChar *cond,
+ const wxChar *msg)
+{
// if we're not fully initialized then just log the error
if (! m_startupComplete) {
wxString buf;
buf.Alloc(4096);
buf.Printf(wxT("%s(%d): assert \"%s\" failed"),
file, line, cond);
- if (msg != NULL) {
- buf += wxT(": ");
- buf += msg;
- }
+ if ( func && *func )
+ buf << wxT(" in ") << func << wxT("()");
+ if (msg != NULL)
+ buf << wxT(": ") << msg;
+
wxLogDebug(buf);
return;
}
if (m_assertMode & wxPYAPP_ASSERT_EXCEPTION) {
wxString buf;
buf.Alloc(4096);
- buf.Printf(wxT("C++ assertion \"%s\" failed in %s(%d)"), cond, file, line);
- if (msg != NULL) {
- buf += wxT(": ");
- buf += msg;
- }
+ buf.Printf(wxT("C++ assertion \"%s\" failed at %s(%d)"), cond, file, line);
+ if ( func && *func )
+ buf << wxT(" in ") << func << wxT("()");
+ if (msg != NULL)
+ buf << wxT(": ") << msg;
+
// set the exception
wxPyBlock_t blocked = wxPyBeginBlockThreads();
buf.Alloc(4096);
buf.Printf(wxT("%s(%d): assert \"%s\" failed"),
file, line, cond);
- if (msg != NULL) {
- buf += wxT(": ");
- buf += msg;
- }
+ if ( func && *func )
+ buf << wxT(" in ") << func << wxT("()");
+ if (msg != NULL)
+ buf << wxT(": ") << msg;
wxLogDebug(buf);
}
// do the normal wx assert dialog?
if (m_assertMode & wxPYAPP_ASSERT_DIALOG)
- wxApp::OnAssert(file, line, cond, msg);
+ wxApp::OnAssertFailure(file, line, func, cond, msg);
}
}
#endif
str = PyObject_Str(source);
if (PyErr_Occurred()) return NULL;
}
- char* tmpPtr; int tmpSize;
+ char* tmpPtr; Py_ssize_t tmpSize;
PyString_AsStringAndSize(str, &tmpPtr, &tmpSize);
target = new wxString(tmpPtr, tmpSize);
str = PyObject_Str(source);
if (PyErr_Occurred()) return wxEmptyString; // TODO: should we PyErr_Clear?
}
- char* tmpPtr; int tmpSize;
+ char* tmpPtr; Py_ssize_t tmpSize;
PyString_AsStringAndSize(str, &tmpPtr, &tmpSize);
target = wxString(tmpPtr, tmpSize);