Fix usage of Py_TYPE() for Python 3.11
authorFriedemann Kleint <Friedemann.Kleint@qt.io>
Thu, 9 Jun 2022 11:45:07 +0000 (13:45 +0200)
committerDmitry Shachnev <mitya57@debian.org>
Sun, 8 Jan 2023 20:06:53 +0000 (20:06 +0000)
The macro was changed to a function, no longer allowing for assignment.

Pick-to: 6.3 6.2 5.15
Task-number: PYSIDE-1960
Change-Id: I4bc0e9a5c1f3dc70d59628e63b7b9d47ea449992
Reviewed-by: Cristian Maureira-Fredes <cristian.maureira-fredes@qt.io>
Reviewed-by: Christian Tismer <tismer@stackless.com>
(cherry picked from commit 73adefe22ffbfabe0ef213e9c2fe2c56efdd7488)

Gbp-Pq: Name Fix-usage-of-Py_TYPE-for-Python-3.11.patch

sources/pyside2/libpyside/pysideqflags.cpp
sources/pyside2/libpyside/pysidesignal.cpp
sources/pyside2/libpyside/pysideweakref.cpp
sources/shiboken2/libshiboken/basewrapper.cpp
sources/shiboken2/libshiboken/sbkenum.cpp

index 8b224f2c89c0a8020ff65432d0834acb83cd680e..784082aac8e4ff4efaecf1a1764a67a436f7ee3f 100644 (file)
@@ -192,7 +192,7 @@ namespace QFlags
         }
         newspec.slots = SbkNewQFlagsType_spec.slots;
         PyTypeObject *type = (PyTypeObject *)SbkType_FromSpec(&newspec);
-        Py_TYPE(type) = &PyType_Type;
+        Py_SET_TYPE(type, &PyType_Type);
 
         PySideQFlagsType *flagsType = reinterpret_cast<PySideQFlagsType *>(type);
         PepType_PFTP(flagsType)->converterPtr = &PepType_PFTP(flagsType)->converter;
index b5069a00aa31d13915001c44e397e546886be128..ce89a9d10fdcaecbb6ef55c1f8ebd2eebfd952f6 100644 (file)
@@ -162,7 +162,7 @@ PyTypeObject *PySideSignalTypeF(void)
     if (!type) {
         type = reinterpret_cast<PyTypeObject *>(SbkType_FromSpec(&PySideSignalType_spec));
         PyTypeObject *hold = Py_TYPE(type);
-        Py_TYPE(type) = PySideMetaSignalTypeF();
+        Py_SET_TYPE(type, PySideMetaSignalTypeF());
         Py_INCREF(Py_TYPE(type));
         Py_DECREF(hold);
     }
index cd90634bd62e102454696896d72be892d6f2e3dd..730990f6a3d8356b185412d68dcb8b206ffa1578 100644 (file)
@@ -90,7 +90,7 @@ PyObject *create(PyObject *obj, PySideWeakRefFunction func, void *userData)
 
     if (Py_TYPE(PySideCallableObjectTypeF()) == 0)
     {
-        Py_TYPE(PySideCallableObjectTypeF()) = &PyType_Type;
+        Py_SET_TYPE(PySideCallableObjectTypeF(), &PyType_Type);
         PyType_Ready(PySideCallableObjectTypeF());
     }
 
index 917b74326acb4d9c0e0265fc2b6bd2bff85a41a8..e2eccd09b0c20fceed0049e54cc42a0974633b73 100644 (file)
@@ -377,7 +377,7 @@ SbkObjectType *SbkObject_TypeF(void)
     static PyTypeObject *type = nullptr;
     if (!type) {
         type = reinterpret_cast<PyTypeObject *>(SbkType_FromSpec(&SbkObject_Type_spec));
-        Py_TYPE(type) = SbkObjectType_TypeF();
+        Py_SET_TYPE(type, SbkObjectType_TypeF());
         Py_INCREF(Py_TYPE(type));
         type->tp_weaklistoffset = offsetof(SbkObject, weakreflist);
         type->tp_dictoffset = offsetof(SbkObject, ob_dict);
@@ -1160,7 +1160,7 @@ introduceWrapperType(PyObject *enclosingObject,
     typeSpec->slots[0].pfunc = reinterpret_cast<void *>(baseType ? baseType : SbkObject_TypeF());
 
     PyObject *heaptype = SbkType_FromSpecWithBases(typeSpec, baseTypes);
-    Py_TYPE(heaptype) = SbkObjectType_TypeF();
+    Py_SET_TYPE(heaptype, SbkObjectType_TypeF());
     Py_INCREF(Py_TYPE(heaptype));
     auto *type = reinterpret_cast<SbkObjectType *>(heaptype);
 #if PY_VERSION_HEX < 0x03000000
index 7dc73dfbc41c22642a2758fb793a66e3b419fa99..9459e42ff5653dd17a3f26437bc3a46193bcfc0c 100644 (file)
@@ -754,7 +754,7 @@ newTypeWithName(const char *name,
     PyTuple_SetItem(bases, 0, reinterpret_cast<PyObject *>(basetype));
     auto *type = reinterpret_cast<PyTypeObject *>(SbkType_FromSpecWithBases(&newspec, bases));
     PyErr_Print();
-    Py_TYPE(type) = SbkEnumType_TypeF();
+    Py_SET_TYPE(type, SbkEnumType_TypeF());
 
     auto *enumType = reinterpret_cast<SbkEnumType *>(type);
     PepType_SETP(enumType)->cppName = cppName;