Browse Source

interrogatedb: Build even when _PyErr_OCCURRED is undefined

Sam Edwards 8 years ago
parent
commit
4d59ad4014
1 changed files with 7 additions and 1 deletions
  1. 7 1
      dtool/src/interrogatedb/py_panda.h

+ 7 - 1
dtool/src/interrogatedb/py_panda.h

@@ -303,8 +303,14 @@ template<class T> INLINE bool DTOOL_Call_ExtractThisPointer(PyObject *self, T *&
 // Functions related to error reporting.
 EXPCL_INTERROGATEDB bool _Dtool_CheckErrorOccurred();
 
+// _PyErr_OCCURRED is an undocumented macro version of PyErr_Occurred.
+// Some implementations of the CPython API (e.g. PyPy's cpyext) do not define
+// it, so in these cases we just silently fall back to PyErr_Occurred.
+#ifndef _PyErr_OCCURRED
+#define _PyErr_OCCURRED() PyErr_Occurred()
+#endif
+
 #ifdef NDEBUG
-// _PyErr_OCCURRED is an undocumented inline version of PyErr_Occurred.
 #define Dtool_CheckErrorOccurred() (_PyErr_OCCURRED() != NULL)
 #else
 #define Dtool_CheckErrorOccurred() _Dtool_CheckErrorOccurred()