| From 257b9d7b18d5f3db3fe099dc18f230e23f7dfbab Mon Sep 17 00:00:00 2001 |
| From: David Gobbi <david.gobbi@gmail.com> |
| Date: Tue, 20 Aug 2019 17:02:24 -0600 |
| Subject: [PATCH] Compatibility for Python 3.8 |
| |
| The PyTypeObject struct was modified in Python 3.8, this change is |
| required to avoid compile errors. |
| --- |
| .../PythonInterpreter/vtkPythonStdStreamCaptureHelper.h | 6 ++++++ |
| Wrapping/PythonCore/PyVTKMethodDescriptor.cxx | 2 +- |
| Wrapping/PythonCore/PyVTKNamespace.cxx | 2 +- |
| Wrapping/PythonCore/PyVTKReference.cxx | 8 ++++---- |
| Wrapping/PythonCore/PyVTKTemplate.cxx | 2 +- |
| Wrapping/PythonCore/vtkPythonCompatibility.h | 8 +++++++- |
| Wrapping/Tools/vtkWrapPythonClass.c | 2 +- |
| Wrapping/Tools/vtkWrapPythonEnum.c | 2 +- |
| Wrapping/Tools/vtkWrapPythonType.c | 2 +- |
| 9 files changed, 23 insertions(+), 11 deletions(-) |
| |
| diff --git a/Utilities/PythonInterpreter/vtkPythonStdStreamCaptureHelper.h b/Utilities/PythonInterpreter/vtkPythonStdStreamCaptureHelper.h |
| index b1c12c83de..14ccfbe928 100644 |
| --- a/Utilities/PythonInterpreter/vtkPythonStdStreamCaptureHelper.h |
| +++ b/Utilities/PythonInterpreter/vtkPythonStdStreamCaptureHelper.h |
| @@ -140,6 +140,12 @@ static PyTypeObject vtkPythonStdStreamCaptureHelperType = { |
| #if PY_VERSION_HEX >= 0x03040000 |
| 0, // tp_finalize |
| #endif |
| +#if PY_VERSION_HEX >= 0x03080000 |
| + 0, // tp_vectorcall |
| +#if PY_VERSION_HEX < 0x03090000 |
| + 0, // tp_print |
| +#endif |
| +#endif |
| }; |
| |
| static PyObject* vtkWrite(PyObject* self, PyObject* args) |
| diff --git a/Wrapping/PythonCore/PyVTKMethodDescriptor.cxx b/Wrapping/PythonCore/PyVTKMethodDescriptor.cxx |
| index 2b0d443537..3840038498 100644 |
| --- a/Wrapping/PythonCore/PyVTKMethodDescriptor.cxx |
| +++ b/Wrapping/PythonCore/PyVTKMethodDescriptor.cxx |
| @@ -186,7 +186,7 @@ PyTypeObject PyVTKMethodDescriptor_Type = { |
| sizeof(PyMethodDescrObject), // tp_basicsize |
| 0, // tp_itemsize |
| PyVTKMethodDescriptor_Delete, // tp_dealloc |
| - nullptr, // tp_print |
| + 0, // tp_vectorcall_offset |
| nullptr, // tp_getattr |
| nullptr, // tp_setattr |
| nullptr, // tp_compare |
| diff --git a/Wrapping/PythonCore/PyVTKNamespace.cxx b/Wrapping/PythonCore/PyVTKNamespace.cxx |
| index 71ee2a3516..5cf5bfbe6b 100644 |
| --- a/Wrapping/PythonCore/PyVTKNamespace.cxx |
| +++ b/Wrapping/PythonCore/PyVTKNamespace.cxx |
| @@ -49,7 +49,7 @@ PyTypeObject PyVTKNamespace_Type = { |
| 0, // tp_basicsize |
| 0, // tp_itemsize |
| PyVTKNamespace_Delete, // tp_dealloc |
| - nullptr, // tp_print |
| + 0, // tp_vectorcall_offset |
| nullptr, // tp_getattr |
| nullptr, // tp_setattr |
| nullptr, // tp_compare |
| diff --git a/Wrapping/PythonCore/PyVTKReference.cxx b/Wrapping/PythonCore/PyVTKReference.cxx |
| index 943ac71080..b7104091c0 100644 |
| --- a/Wrapping/PythonCore/PyVTKReference.cxx |
| +++ b/Wrapping/PythonCore/PyVTKReference.cxx |
| @@ -1010,7 +1010,7 @@ PyTypeObject PyVTKReference_Type = { |
| sizeof(PyVTKReference), // tp_basicsize |
| 0, // tp_itemsize |
| PyVTKReference_Delete, // tp_dealloc |
| - nullptr, // tp_print |
| + 0, // tp_vectorcall_offset |
| nullptr, // tp_getattr |
| nullptr, // tp_setattr |
| nullptr, // tp_compare |
| @@ -1067,7 +1067,7 @@ PyTypeObject PyVTKNumberReference_Type = { |
| sizeof(PyVTKReference), // tp_basicsize |
| 0, // tp_itemsize |
| PyVTKReference_Delete, // tp_dealloc |
| - nullptr, // tp_print |
| + 0, // tp_vectorcall_offset |
| nullptr, // tp_getattr |
| nullptr, // tp_setattr |
| nullptr, // tp_compare |
| @@ -1124,7 +1124,7 @@ PyTypeObject PyVTKStringReference_Type = { |
| sizeof(PyVTKReference), // tp_basicsize |
| 0, // tp_itemsize |
| PyVTKReference_Delete, // tp_dealloc |
| - nullptr, // tp_print |
| + 0, // tp_vectorcall_offset |
| nullptr, // tp_getattr |
| nullptr, // tp_setattr |
| nullptr, // tp_compare |
| @@ -1181,7 +1181,7 @@ PyTypeObject PyVTKTupleReference_Type = { |
| sizeof(PyVTKReference), // tp_basicsize |
| 0, // tp_itemsize |
| PyVTKReference_Delete, // tp_dealloc |
| - nullptr, // tp_print |
| + 0, // tp_vectorcall_offset |
| nullptr, // tp_getattr |
| nullptr, // tp_setattr |
| nullptr, // tp_compare |
| diff --git a/Wrapping/PythonCore/PyVTKTemplate.cxx b/Wrapping/PythonCore/PyVTKTemplate.cxx |
| index be200985b3..340fe7953b 100644 |
| --- a/Wrapping/PythonCore/PyVTKTemplate.cxx |
| +++ b/Wrapping/PythonCore/PyVTKTemplate.cxx |
| @@ -268,7 +268,7 @@ PyTypeObject PyVTKTemplate_Type = { |
| 0, // tp_basicsize |
| 0, // tp_itemsize |
| nullptr, // tp_dealloc |
| - nullptr, // tp_print |
| + 0, // tp_vectorcall_offset |
| nullptr, // tp_getattr |
| nullptr, // tp_setattr |
| nullptr, // tp_compare |
| diff --git a/Wrapping/PythonCore/vtkPythonCompatibility.h b/Wrapping/PythonCore/vtkPythonCompatibility.h |
| index 4a767844a6..be208faeef 100644 |
| --- a/Wrapping/PythonCore/vtkPythonCompatibility.h |
| +++ b/Wrapping/PythonCore/vtkPythonCompatibility.h |
| @@ -64,7 +64,13 @@ |
| #endif |
| |
| // PyTypeObject compatibility |
| -#if PY_VERSION_HEX >= 0x03040000 |
| +#if PY_VERSION_HEX >= 0x03090000 |
| +#define VTK_WRAP_PYTHON_SUPPRESS_UNINITIALIZED \ |
| + 0, 0, 0, 0, |
| +#elif PY_VERSION_HEX >= 0x03080000 |
| +#define VTK_WRAP_PYTHON_SUPPRESS_UNINITIALIZED \ |
| + 0, 0, 0, 0, 0, |
| +#elif PY_VERSION_HEX >= 0x03040000 |
| #define VTK_WRAP_PYTHON_SUPPRESS_UNINITIALIZED \ |
| 0, 0, 0, |
| #else |
| diff --git a/Wrapping/Tools/vtkWrapPythonClass.c b/Wrapping/Tools/vtkWrapPythonClass.c |
| index b1e45f8e80..4d558ea081 100644 |
| --- a/Wrapping/Tools/vtkWrapPythonClass.c |
| +++ b/Wrapping/Tools/vtkWrapPythonClass.c |
| @@ -521,7 +521,7 @@ void vtkWrapPython_GenerateObjectType( |
| " sizeof(PyVTKObject), // tp_basicsize\n" |
| " 0, // tp_itemsize\n" |
| " PyVTKObject_Delete, // tp_dealloc\n" |
| - " nullptr, // tp_print\n" |
| + " 0, // tp_vectorcall_offset\n" |
| " nullptr, // tp_getattr\n" |
| " nullptr, // tp_setattr\n" |
| " nullptr, // tp_compare\n" |
| diff --git a/Wrapping/Tools/vtkWrapPythonEnum.c b/Wrapping/Tools/vtkWrapPythonEnum.c |
| index b933702242..1249362854 100644 |
| --- a/Wrapping/Tools/vtkWrapPythonEnum.c |
| +++ b/Wrapping/Tools/vtkWrapPythonEnum.c |
| @@ -145,7 +145,7 @@ void vtkWrapPython_GenerateEnumType( |
| " sizeof(PyIntObject), // tp_basicsize\n" |
| " 0, // tp_itemsize\n" |
| " nullptr, // tp_dealloc\n" |
| - " nullptr, // tp_print\n" |
| + " 0, // tp_vectorcall_offset\n" |
| " nullptr, // tp_getattr\n" |
| " nullptr, // tp_setattr\n" |
| " nullptr, // tp_compare\n" |
| diff --git a/Wrapping/Tools/vtkWrapPythonType.c b/Wrapping/Tools/vtkWrapPythonType.c |
| index 744cb1b9d3..0a1375e541 100644 |
| --- a/Wrapping/Tools/vtkWrapPythonType.c |
| +++ b/Wrapping/Tools/vtkWrapPythonType.c |
| @@ -709,7 +709,7 @@ void vtkWrapPython_GenerateSpecialType( |
| " sizeof(PyVTKSpecialObject), // tp_basicsize\n" |
| " 0, // tp_itemsize\n" |
| " Py%s_Delete, // tp_dealloc\n" |
| - " nullptr, // tp_print\n" |
| + " 0, // tp_vectorcall_offset\n" |
| " nullptr, // tp_getattr\n" |
| " nullptr, // tp_setattr\n" |
| " nullptr, // tp_compare\n" |
| -- |
| 2.22.0 |