46 lines
1.4 KiB
Diff
46 lines
1.4 KiB
Diff
From 89e0c07e4aa991af307b113afa474fcdfffe0859 Mon Sep 17 00:00:00 2001
|
|
From: Christoph Reiter <reiter.christoph@gmail.com>
|
|
Date: Tue, 6 Oct 2020 14:21:33 +0200
|
|
Subject: [PATCH] Don't assume Py_TYPE being a macro
|
|
|
|
It got changed to a function in Python 3.10. Use the Py_SET_TYPE macro
|
|
suggested at https://docs.python.org/3.10/whatsnew/3.10.html instead.
|
|
|
|
Fixes #358
|
|
---
|
|
giscanner/giscannermodule.c | 10 +++++-----
|
|
1 file changed, 5 insertions(+), 5 deletions(-)
|
|
|
|
diff --git a/giscanner/giscannermodule.c b/giscanner/giscannermodule.c
|
|
index 43f8bdea2..46bfd105e 100644
|
|
--- a/giscanner/giscannermodule.c
|
|
+++ b/giscanner/giscannermodule.c
|
|
@@ -27,10 +27,6 @@
|
|
|
|
#include <glib-object.h>
|
|
|
|
-#ifndef Py_TYPE
|
|
- #define Py_TYPE(ob) (((PyObject*)(ob))->ob_type)
|
|
-#endif
|
|
-
|
|
#if PY_MAJOR_VERSION >= 3
|
|
#define MOD_INIT(name) PyMODINIT_FUNC PyInit_##name(void)
|
|
#define MOD_ERROR_RETURN NULL
|
|
@@ -52,8 +48,12 @@ PyTypeObject Py##cname##_Type = { \
|
|
0 \
|
|
}
|
|
|
|
+#if PY_VERSION_HEX < 0x030900A4
|
|
+# define Py_SET_TYPE(obj, type) ((Py_TYPE(obj) = (type)), (void)0)
|
|
+#endif
|
|
+
|
|
#define REGISTER_TYPE(d, name, type) \
|
|
- Py_TYPE(&type) = &PyType_Type; \
|
|
+ Py_SET_TYPE(&type, &PyType_Type); \
|
|
type.tp_alloc = PyType_GenericAlloc; \
|
|
type.tp_new = PyType_GenericNew; \
|
|
type.tp_flags = Py_TPFLAGS_DEFAULT | Py_TPFLAGS_BASETYPE; \
|
|
--
|
|
GitLab
|
|
|