diff --git a/src/App/FeaturePythonPyImp.h b/src/App/FeaturePythonPyImp.h index d165c2fed0..a1671102f5 100644 --- a/src/App/FeaturePythonPyImp.h +++ b/src/App/FeaturePythonPyImp.h @@ -45,28 +45,14 @@ virtual ~_class_(); \ }; -#if PY_VERSION_HEX >= 0x03080000 -#define PYTHON_TYPE_IMP(_class_, _subclass_) \ - PyTypeObject _class_::Type = { \ - PyVarObject_HEAD_INIT(&PyType_Type, 0) \ - ""#_class_"", \ - sizeof(_class_), \ - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \ - Py_TPFLAGS_BASETYPE|Py_TPFLAGS_DEFAULT, \ - ""#_class_"", \ - 0, 0, 0, 0, 0, 0, 0, 0, 0, \ - &_subclass_::Type, \ - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ - }; \ - _class_::_class_(Base::BaseClass *pcObject, PyTypeObject *T) \ - : _subclass_(reinterpret_cast<_subclass_::PointerType>(pcObject), T) \ - { \ - } \ - _class_::~_class_() \ - { \ - } - +#if PY_VERSION_HEX >= 0x03090000 +#define PYTHON_TYPE_SLOTS 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 +#elif PY_VERSION_HEX >= 0x03080000 +#define PYTHON_TYPE_SLOTS 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 #else +#define PYTHON_TYPE_SLOTS 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 +#endif \ + #define PYTHON_TYPE_IMP(_class_, _subclass_) \ PyTypeObject _class_::Type = { \ PyVarObject_HEAD_INIT(&PyType_Type, 0) \ @@ -77,7 +63,7 @@ ""#_class_"", \ 0, 0, 0, 0, 0, 0, 0, 0, 0, \ &_subclass_::Type, \ - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ + PYTHON_TYPE_SLOTS \ }; \ _class_::_class_(Base::BaseClass *pcObject, PyTypeObject *T) \ : _subclass_(reinterpret_cast<_subclass_::PointerType>(pcObject), T) \ @@ -86,7 +72,6 @@ _class_::~_class_() \ { \ } -#endif namespace App {