33
44#include <Python.h>
55
6+ #if PY_MAJOR_VERSION != 3
7+ #error "this file assumes python 3"
8+ #endif
9+
610#ifndef _PyObject_Vectorcall
711#define VIEW_NEEDS_VECTORCALL
8- PyObject * _PyObject_VectorcallBackport (
9- PyObject * obj ,
10- PyObject * * args ,
12+ PyObject * _PyObject_VectorcallBackport (
13+ PyObject * obj ,
14+ PyObject * * args ,
1115 size_t nargsf ,
12- PyObject * kwargs
16+ PyObject * kwargs
1317);
1418
1519#define PyObject_CallNoArgs (o ) PyObject_CallObject(o, NULL)
@@ -18,19 +22,19 @@ PyObject* _PyObject_VectorcallBackport(
1822#endif
1923
2024#if PY_VERSION_HEX < 0x030c0000
21- PyObject * PyErr_GetRaisedException (void );
22- void PyErr_SetRaisedException (PyObject * err );
25+ PyObject * PyErr_GetRaisedException (void );
26+ void PyErr_SetRaisedException (PyObject * err );
2327#endif
2428
2529#ifndef Py_NewRef
2630#define VIEW_NEEDS_NEWREF
27- PyObject * Py_NewRef_Backport (PyObject * o );
31+ PyObject * Py_NewRef_Backport (PyObject * o );
2832#define Py_NewRef Py_NewRef_Backport
2933#endif
3034
3135#ifndef Py_XNewRef
3236#define VIEW_NEEDS_XNEWREF
33- PyObject * Py_XNewRef_Backport (PyObject * o );
37+ PyObject * Py_XNewRef_Backport (PyObject * o );
3438#define Py_XNewRef Py_XNewRef_Backport
3539#endif
3640
@@ -40,7 +44,25 @@ PyObject* Py_XNewRef_Backport(PyObject* o);
4044
4145#if PY_MINOR_VERSION == 8
4246#define PyObject_CallOneArg (func , val ) \
43- PyObject_Vectorcall(func, (PyObject*[]) { val }, 1, NULL)
47+ PyObject_Vectorcall(func, (PyObject *[]) { val }, 1, NULL)
48+ #endif
49+
50+ #if PY_MINOR_VERSION < 13
51+ static int
52+ PyModule_Add (PyObject * module , const char * name , PyObject * value )
53+ {
54+ if (value == NULL )
55+ {
56+ return -1 ;
57+ }
58+ if (PyModule_AddObject (module , name , value ) < 0 )
59+ {
60+ Py_DECREF (value );
61+ return -1 ;
62+ }
63+ return 0 ;
64+ }
65+
4466#endif
4567
4668#endif
0 commit comments