diff options
Diffstat (limited to 'sources/pyside6')
| -rw-r--r-- | sources/pyside6/PySide6/QtCore/glue/core_snippets.cpp | 2 | ||||
| -rw-r--r-- | sources/pyside6/PySide6/glue/qtcore.cpp | 2 | ||||
| -rw-r--r-- | sources/pyside6/PySide6/glue/qtgui.cpp | 6 | ||||
| -rw-r--r-- | sources/pyside6/PySide6/templates/core_common.xml | 20 | ||||
| -rw-r--r-- | sources/pyside6/PySide6/templates/gui_common.xml | 26 | ||||
| -rw-r--r-- | sources/pyside6/PySide6/templates/opengl_common.xml | 2 | ||||
| -rw-r--r-- | sources/pyside6/PySide6/templates/widgets_common.xml | 6 | ||||
| -rw-r--r-- | sources/pyside6/libpyside/pysidemetafunction.cpp | 5 |
8 files changed, 42 insertions, 27 deletions
diff --git a/sources/pyside6/PySide6/QtCore/glue/core_snippets.cpp b/sources/pyside6/PySide6/QtCore/glue/core_snippets.cpp index f6acf9d60..e4aeb6e37 100644 --- a/sources/pyside6/PySide6/QtCore/glue/core_snippets.cpp +++ b/sources/pyside6/PySide6/QtCore/glue/core_snippets.cpp @@ -105,7 +105,7 @@ bool QVariant_isStringList(PyObject *list) Shiboken::AutoDecRef fast(PySequence_Fast(list, "Failed to convert QVariantList")); const Py_ssize_t size = PySequence_Fast_GET_SIZE(fast.object()); for (Py_ssize_t i = 0; i < size; ++i) { - PyObject *item = PySequence_Fast_GET_ITEM(fast.object(), i); + Shiboken::AutoDecRef item(PySequence_GetItem(fast.object(), i)); if (PyUnicode_Check(item) == 0) return false; } diff --git a/sources/pyside6/PySide6/glue/qtcore.cpp b/sources/pyside6/PySide6/glue/qtcore.cpp index 56d813b7e..50f1bfc8e 100644 --- a/sources/pyside6/PySide6/glue/qtcore.cpp +++ b/sources/pyside6/PySide6/glue/qtcore.cpp @@ -261,7 +261,7 @@ static QVariant QVariant_convertToVariantList(PyObject *list) Shiboken::AutoDecRef fast(PySequence_Fast(list, "Failed to convert QVariantList")); const Py_ssize_t size = PySequence_Fast_GET_SIZE(fast.object()); for (Py_ssize_t i = 0; i < size; ++i) { - PyObject *pyItem = PySequence_Fast_GET_ITEM(fast.object(), i); + Shiboken::AutoDecRef pyItem(PySequence_GetItem(fast.object(), i)); QVariant item = %CONVERTTOCPP[QVariant](pyItem); lst.append(item); } diff --git a/sources/pyside6/PySide6/glue/qtgui.cpp b/sources/pyside6/PySide6/glue/qtgui.cpp index aacac3508..428840898 100644 --- a/sources/pyside6/PySide6/glue/qtgui.cpp +++ b/sources/pyside6/PySide6/glue/qtgui.cpp @@ -716,7 +716,7 @@ Shiboken::AutoDecRef seq(PySequence_Fast(%PYARG_1, "Can't turn into sequence")); if (PySequence_Size(seq) == 16) { float values[16]; for (Py_ssize_t i = 0; i < 16; ++i) { - PyObject *pv = PySequence_Fast_GET_ITEM(seq.object(), i); + Shiboken::AutoDecRef pv(PySequence_GetItem(seq.object(), i)); values[i] = PyFloat_AsDouble(pv); } @@ -741,8 +741,8 @@ for (Py_ssize_t i = 0; i < 16; ++i) { if (PySequence_Check(_key)) { Shiboken::AutoDecRef key(PySequence_Fast(_key, "Invalid matrix index.")); if (PySequence_Fast_GET_SIZE(key.object()) == 2) { - PyObject *posx = PySequence_Fast_GET_ITEM(key.object(), 0); - PyObject *posy = PySequence_Fast_GET_ITEM(key.object(), 1); + Shiboken::AutoDecRef posx(PySequence_GetItem(key.object(), 0)); + Shiboken::AutoDecRef posy(PySequence_GetItem(key.object(), 1)); Py_ssize_t x = PyLong_AsSsize_t(posx); Py_ssize_t y = PyLong_AsSsize_t(posy); float ret = (*%CPPSELF)(x,y); diff --git a/sources/pyside6/PySide6/templates/core_common.xml b/sources/pyside6/PySide6/templates/core_common.xml index 07bafc6ff..dd4588f71 100644 --- a/sources/pyside6/PySide6/templates/core_common.xml +++ b/sources/pyside6/PySide6/templates/core_common.xml @@ -155,18 +155,22 @@ <template name="fix_native_return_number*,number*,number*,number*"> PyObject* _obj = %PYARG_0.object(); + Shiboken::AutoDecRef _obj0(PySequence_GetItem(_obj, 0)); + Shiboken::AutoDecRef _obj1(PySequence_GetItem(_obj, 1)); + Shiboken::AutoDecRef _obj2(PySequence_GetItem(_obj, 2)); + Shiboken::AutoDecRef _obj3(PySequence_GetItem(_obj, 3)); if (!PySequence_Check(_obj) || PySequence_Fast_GET_SIZE(_obj) != 4 - || !PyNumber_Check(PySequence_Fast_GET_ITEM(_obj, 0)) - || !PyNumber_Check(PySequence_Fast_GET_ITEM(_obj, 1)) - || !PyNumber_Check(PySequence_Fast_GET_ITEM(_obj, 2)) - || !PyNumber_Check(PySequence_Fast_GET_ITEM(_obj, 3))) { + || !PyNumber_Check(_obj0) + || !PyNumber_Check(_obj1) + || !PyNumber_Check(_obj2) + || !PyNumber_Check(_obj3)) { PyErr_SetString(PyExc_TypeError, "Sequence of 4 numbers expected"); } else { - *%1 = %CONVERTTOCPP[$TYPE](PySequence_Fast_GET_ITEM(_obj, 0)); - *%2 = %CONVERTTOCPP[$TYPE](PySequence_Fast_GET_ITEM(_obj, 1)); - *%3 = %CONVERTTOCPP[$TYPE](PySequence_Fast_GET_ITEM(_obj, 2)); - *%4 = %CONVERTTOCPP[$TYPE](PySequence_Fast_GET_ITEM(_obj, 3)); + *%1 = %CONVERTTOCPP[$TYPE](_obj0); + *%2 = %CONVERTTOCPP[$TYPE](_obj1); + *%3 = %CONVERTTOCPP[$TYPE](_obj2); + *%4 = %CONVERTTOCPP[$TYPE](_obj3); } </template> diff --git a/sources/pyside6/PySide6/templates/gui_common.xml b/sources/pyside6/PySide6/templates/gui_common.xml index 6a7404507..68ca5c2a8 100644 --- a/sources/pyside6/PySide6/templates/gui_common.xml +++ b/sources/pyside6/PySide6/templates/gui_common.xml @@ -20,7 +20,9 @@ Shiboken::AutoDecRef strList(PySequence_Fast(%PYARG_1, "Invalid sequence.")); Py_ssize_t lineCount = PySequence_Fast_GET_SIZE(strList.object()); for (Py_ssize_t line = 0; line < lineCount; ++line) { - if (!Shiboken::String::check(PySequence_Fast_GET_ITEM(strList.object(), line))) { + Shiboken::AutoDecRef _obj(PySequence_GetItem(strList.object(), line)); + bool isString = Shiboken::String::check(_obj); + if (!isString) { PyErr_SetString(PyExc_TypeError, "The argument must be a sequence of strings."); break; } @@ -30,8 +32,10 @@ break; auto xpm = new const char*[lineCount]; - for (Py_ssize_t line = 0; line < lineCount; ++line) - xpm[line] = Shiboken::String::toCString(PySequence_Fast_GET_ITEM(strList.object(), line)); + for (Py_ssize_t line = 0; line < lineCount; ++line) { + Shiboken::AutoDecRef _obj(PySequence_GetItem(strList.object(), line)); + xpm[line] = Shiboken::String::toCString(_obj); + } %0 = new %TYPE(xpm); @@ -101,19 +105,23 @@ const Py_ssize_t size = PySequence_Fast_GET_SIZE(seq.object()); if (size > 1) { - if (%ISCONVERTIBLE[QString](PySequence_Fast_GET_ITEM(seq.object(), 1))) - %1 = %CONVERTTOCPP[QString](PySequence_Fast_GET_ITEM(seq.object(), 1)); + Shiboken::AutoDecRef _obj1(PySequence_GetItem(seq.object(), 1)); + if (%ISCONVERTIBLE[QString](_obj1)) + %1 = %CONVERTTOCPP[QString](_obj1); else qWarning("%TYPE::%FUNCTION_NAME: Second tuple element is not convertible to unicode."); } if (size > 2) { - if (%ISCONVERTIBLE[int](PySequence_Fast_GET_ITEM(seq.object(), 2))) - %2 = %CONVERTTOCPP[int](PySequence_Fast_GET_ITEM(seq.object(), 2)); + Shiboken::AutoDecRef _obj2(PySequence_GetItem(seq.object(), 2)); + if (%ISCONVERTIBLE[int](_obj2)) + %2 = %CONVERTTOCPP[int](_obj2); else qWarning("%TYPE::%FUNCTION_NAME: Second tuple element is not convertible to int."); } - %PYARG_0.reset(PySequence_Fast_GET_ITEM(seq.object(), 0)); + Shiboken::AutoDecRef _sobj(PySequence_GetItem(seq.object(), 0)); + + %PYARG_0.reset(_sobj); Py_INCREF(%PYARG_0); // we need to incref, because "%PYARG_0 = ..." will decref the tuple and the tuple will be decrefed again at the end of this scope. } @@ -210,7 +218,7 @@ "Failed to parse sequence on %TYPE constructor.")); float values[%SIZE]; for(int i=0; i < %SIZE; i++) { - PyObject *pv = PySequence_Fast_GET_ITEM(fast.object(), i); + Shiboken::AutoDecRef pv(PySequence_GetItem(fast.object(), i)); values[i] = %CONVERTTOCPP[float](pv); } %0 = new %TYPE(values); diff --git a/sources/pyside6/PySide6/templates/opengl_common.xml b/sources/pyside6/PySide6/templates/opengl_common.xml index 566ebe6ee..3435ef810 100644 --- a/sources/pyside6/PySide6/templates/opengl_common.xml +++ b/sources/pyside6/PySide6/templates/opengl_common.xml @@ -12,7 +12,7 @@ Shiboken::AutoDecRef fast(PySequence_Fast(%PYARG_2, "Failed to parse sequence with type %VECTOR_TYPE.")); for(Py_ssize_t i=0; i < _size; i++) { - PyObject* pv = PySequence_Fast_GET_ITEM(fast.object(), i); + Shiboken::AutoDecRef pv(PySequence_GetItem(fast.object(), i)); _list[i] = %CONVERTTOCPP[$ATTR_TYPE](pv); } } diff --git a/sources/pyside6/PySide6/templates/widgets_common.xml b/sources/pyside6/PySide6/templates/widgets_common.xml index b0dee43cd..fe2f35e7a 100644 --- a/sources/pyside6/PySide6/templates/widgets_common.xml +++ b/sources/pyside6/PySide6/templates/widgets_common.xml @@ -19,7 +19,8 @@ const Py_ssize_t numItems = PySequence_Size(%PYARG_1); Shiboken::AutoArrayPointer<QGraphicsItem*> %out(numItems); for (Py_ssize_t i = 0; i < numItems; ++i) { - %out[i] = %CONVERTTOCPP[QGraphicsItem*](PySequence_Fast_GET_ITEM(%PYARG_1, i)); + Shiboken::AutoDecRef _arg1(PySequence_GetItem(%PYARG_1, i)); + %out[i] = %CONVERTTOCPP[QGraphicsItem*](_arg1); } </template> @@ -44,7 +45,8 @@ const Py_ssize_t numOptions = PySequence_Size(%PYARG_2); Shiboken::AutoArrayPointer<QStyleOptionGraphicsItem> %out(numOptions); for (Py_ssize_t i=0; i < numOptions; ++i) { - %out[i] = %CONVERTTOCPP[QStyleOptionGraphicsItem](PySequence_Fast_GET_ITEM(%PYARG_1, i)); + Shiboken::AutoDecRef _arg1(PySequence_GetItem(%PYARG_1, i)); + %out[i] = %CONVERTTOCPP[QStyleOptionGraphicsItem](_arg1); } </template> diff --git a/sources/pyside6/libpyside/pysidemetafunction.cpp b/sources/pyside6/libpyside/pysidemetafunction.cpp index 10ba894a7..342ffc04d 100644 --- a/sources/pyside6/libpyside/pysidemetafunction.cpp +++ b/sources/pyside6/libpyside/pysidemetafunction.cpp @@ -156,12 +156,13 @@ bool call(QObject *self, int methodIndex, PyObject *args, PyObject **retVal) methArgs[i] = methValues[i].data(); if (i == 0) // Don't do this for return type continue; + Shiboken::AutoDecRef obj(PySequence_GetItem(sequence.object(), i - 1)); if (metaType.id() == QMetaType::QString) { QString tmp; - converter.toCpp(PySequence_Fast_GET_ITEM(sequence.object(), i - 1), &tmp); + converter.toCpp(obj, &tmp); methValues[i] = tmp; } else { - converter.toCpp(PySequence_Fast_GET_ITEM(sequence.object(), i - 1), methArgs[i]); + converter.toCpp(obj, methArgs[i]); } } else { PyErr_Format(PyExc_TypeError, "Unknown type used to call meta function (that may be a signal): %s", argTypes[i].constData()); |
