print exception

This commit is contained in:
David Rose 2008-09-29 18:17:53 +00:00
parent 4f67da1cd1
commit dd84e5b978

View File

@ -228,6 +228,21 @@ call_python_func(PyObject *function, PyObject *args) {
// In the main thread, just call the function.
result = PyObject_Call(function, args, NULL);
if (result == (PyObject *)NULL) {
// Temporarily save and restore the exception state so we can print a
// callback on-the-spot.
PyObject *exc, *val, *tb;
PyErr_Fetch(&exc, &val, &tb);
Py_XINCREF(exc);
Py_XINCREF(val);
Py_XINCREF(tb);
PyErr_Restore(exc, val, tb);
PyErr_Print();
PyErr_Restore(exc, val, tb);
}
} else {
#ifdef SIMPLE_THREADS
// We can't use the PyGILState interface, which assumes we are using