[gobject-introspection: 1/2] Don't assume Py_TYPE being a macro




commit 89e0c07e4aa991af307b113afa474fcdfffe0859
Author: Christoph Reiter <reiter christoph gmail com>
Date:   Tue Oct 6 14:21:33 2020 +0200

    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; \


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]