use PyObject* type for arguments to PyErr_Restore() in Cython/Includes/python_exc.pxd
authorLisandro Dalcin <dalcinl@gmail.com>
Wed, 9 Sep 2009 20:30:09 +0000 (17:30 -0300)
committerLisandro Dalcin <dalcinl@gmail.com>
Wed, 9 Sep 2009 20:30:09 +0000 (17:30 -0300)
Cython/Includes/python_exc.pxd
Cython/Runtime/refnanny.pyx

index 24788c7203cdefd855127fbf9b7b96e73ac175c5..8a6d29cf5b0540cf80a36e1041f57c1938445748 100644 (file)
@@ -87,7 +87,7 @@ cdef extern from "Python.h":
     # needs to handle exceptions or by code that needs to save and
     # restore the error indicator temporarily.
 
-    void PyErr_Restore(object type, object value, object traceback)
+    void PyErr_Restore(PyObject* type, PyObject* value, PyObject* traceback)
     # Set the error indicator from the three objects. If the error
     # indicator is already set, it is cleared first. If the objects
     # are NULL, the error indicator is cleared. Do not pass a NULL
index 64cac8678f4b6786a0aaf1699ea216e5f980bfcf..5f278c997abf410c4cb838a342f3ac9dc2d2fada 100644 (file)
@@ -59,7 +59,7 @@ class Context(object):
         else:
             return None
 
-cpdef report_unraisable(e):
+cdef void report_unraisable(object e):
     try:
         print "refnanny raised an exception: %s" % e
     except:
@@ -84,7 +84,7 @@ cdef PyObject* NewContext(char* funcname, int lineno, char* filename) except NUL
         result = <PyObject*>ctx
     except Exception, e:
         report_unraisable(e)
-    PyErr_Restore(<object>type, <object>value, <object>tb)
+    PyErr_Restore(type, value, tb)
     return result
 
 cdef void GOTREF(PyObject* ctx, PyObject* p_obj, int lineno):
@@ -98,7 +98,7 @@ cdef void GOTREF(PyObject* ctx, PyObject* p_obj, int lineno):
             (<object>ctx).regref(<object>p_obj, lineno, False)
     except Exception, e:
         report_unraisable(e)
-    PyErr_Restore(<object>type, <object>value, <object>tb)
+    PyErr_Restore(type, value, tb)
 
 cdef int GIVEREF_and_report(PyObject* ctx, PyObject* p_obj, int lineno):
     if ctx == NULL: return 1
@@ -112,7 +112,7 @@ cdef int GIVEREF_and_report(PyObject* ctx, PyObject* p_obj, int lineno):
             decref_ok = (<object>ctx).delref(<object>p_obj, lineno, False)
     except Exception, e:
         report_unraisable(e)
-    PyErr_Restore(<object>type, <object>value, <object>tb)
+    PyErr_Restore(type, value, tb)
     return decref_ok
 
 cdef void GIVEREF(PyObject* ctx, PyObject* p_obj, int lineno):
@@ -141,7 +141,7 @@ cdef void FinishContext(PyObject** ctx):
         report_unraisable(e)
     Py_DECREF(<object>ctx[0])
     ctx[0] = NULL
-    PyErr_Restore(<object>type, <object>value, <object>tb)
+    PyErr_Restore(type, value, tb)
 
 cdef extern from "Python.h":
     object PyCObject_FromVoidPtr(void*, void (*)(void*))