diff options
Diffstat (limited to 'dev-python/shiboken2/files/shiboken2-5.15.2-python311.patch')
-rw-r--r-- | dev-python/shiboken2/files/shiboken2-5.15.2-python311.patch | 125 |
1 files changed, 0 insertions, 125 deletions
diff --git a/dev-python/shiboken2/files/shiboken2-5.15.2-python311.patch b/dev-python/shiboken2/files/shiboken2-5.15.2-python311.patch deleted file mode 100644 index 063861a1cb1a..000000000000 --- a/dev-python/shiboken2/files/shiboken2-5.15.2-python311.patch +++ /dev/null @@ -1,125 +0,0 @@ -https://src.fedoraproject.org/fork/pviktori/rpms/python-pyside2/raw/5da9902bd8732b49eb722d71f306d4ab197c84b8/f/python3.11.patch -https://code.qt.io/cgit/pyside/pyside-setup.git/patch/?id=52df3b8f64 -https://code.qt.io/cgit/pyside/pyside-setup.git/patch/?id=73adefe22f -https://code.qt.io/cgit/pyside/pyside-setup.git/patch/?id=a09a1db839 - -From b64ad27d8dfeeecaaa8a98051252a32c9d998df4 Mon Sep 17 00:00:00 2001 -From: Friedemann Kleint <Friedemann.Kleint@qt.io> -Date: Thu, 9 Jun 2022 16:50:41 +0200 -Subject: [PATCH] libshiboken: Fix a crash in Shiboken::Object::isValid() for - Python 3.11 - -The function is passed type objects for class methods, which caused -it to crash. - -The first clause did not catch this, and so it was cast to SbkObject -below. - -Add a type check to prevent this. - -Pick-to: 6.3 6.2 5.15 -Task-number: PYSIDE-1960 -Change-Id: Icfdd6fefb7156ac5961444bd5395109849a1d66e -Reviewed-by: Christian Tismer <tismer@stackless.com> -Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org> ---- a/libshiboken/basewrapper.cpp -+++ b/libshiboken/basewrapper.cpp -@@ -1468,6 +1468,7 @@ bool setCppPointer(SbkObject *sbkObj, PyTypeObject *desiredType, void *cptr) - bool isValid(PyObject *pyObj) - { - if (!pyObj || pyObj == Py_None -+ || PyType_Check(pyObj) != 0 - || Py_TYPE(Py_TYPE(pyObj)) != SbkObjectType_TypeF()) { - return true; - } ---- a/libshiboken/basewrapper.cpp -+++ b/libshiboken/basewrapper.cpp -@@ -366,7 +366,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); -@@ -1110,7 +1110,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 ---- a/libshiboken/sbkenum.cpp -+++ b/libshiboken/sbkenum.cpp -@@ -741,7 +741,7 @@ newTypeWithName(const char *name, - copyNumberMethods(numbers_fromFlag, newslots, &idx); - newspec.slots = newslots; - auto *type = reinterpret_cast<PyTypeObject *>(SbkType_FromSpec(&newspec)); -- Py_TYPE(type) = SbkEnumType_TypeF(); -+ Py_SET_TYPE(type, SbkEnumType_TypeF()); - - auto *enumType = reinterpret_cast<SbkEnumType *>(type); - PepType_SETP(enumType)->cppName = cppName; -From a09a1db8391243e6bb290ee66bb6e3afbb114c61 Mon Sep 17 00:00:00 2001 -From: Friedemann Kleint <Friedemann.Kleint@qt.io> -Date: Fri, 24 Jun 2022 09:22:01 +0200 -Subject: libshiboken: Fix crashes with static strings in Python 3.11 - -In Python 3.11, some strings come with a refcount above decimal -1000000000, apparently indicating that they are interned. Replace the -mechanism by PyUnicode_InternFromString(). - -Task-number: PYSIDE-1960 -Pick-to: 6.3 6.2 5.15 -Change-Id: I6436afee351f89da5814b5d6bc76970b1b508168 -Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org> -Reviewed-by: Christian Tismer <tismer@stackless.com> -Upstream: https://code.qt.io/cgit/pyside/pyside-setup.git/commit/?id=a09a1db8391243e6bb290ee66bb6e3afbb114c61 - ---- a/libshiboken/sbkstring.cpp -+++ b/libshiboken/sbkstring.cpp -@@ -5,8 +5,14 @@ - #include "sbkstaticstrings_p.h" - #include "autodecref.h" - --#include <vector> --#include <unordered_set> -+#if PY_VERSION_HEX >= 0x030B0000 || defined(Py_LIMITED_API) -+# define USE_INTERN_STRINGS -+#endif -+ -+#ifndef USE_INTERN_STRINGS -+# include <vector> -+# include <unordered_set> -+#endif - - namespace Shiboken - { -@@ -179,6 +185,13 @@ Py_ssize_t len(PyObject *str) - // PyObject *attr = PyObject_GetAttr(obj, name()); - // - -+#ifdef USE_INTERN_STRINGS -+PyObject *createStaticString(const char *str) -+{ -+ return PyUnicode_InternFromString(str); -+} -+#else -+ - using StaticStrings = std::unordered_set<PyObject *>; - - static void finalizeStaticStrings(); // forward -@@ -225,6 +238,8 @@ PyObject *createStaticString(const char *str) - return result; - } - -+#endif // !USE_INTERN_STRINGS -+ - /////////////////////////////////////////////////////////////////////// - // - // PYSIDE-1019: Helper function for snake_case vs. camelCase names -cgit v1.2.1 - |