From 86f56c1ea0846540b082c67d0dc3e942fd311208 Mon Sep 17 00:00:00 2001 From: Christian Tismer Date: Tue, 13 Aug 2019 11:15:52 +0200 Subject: Fix wrong Python init return codes PySide classes had wrong return values in their init code. In case of errors, they would not show up immediately. The following modules are affected: sources/pyside2/libpyside/pysideclassinfo.cpp sources/pyside2/libpyside/pysideproperty.cpp sources/pyside2/libpyside/pysidesignal.cpp sources/pyside2/libpyside/pysideslot.cpp sources/pyside2/PySide2/QtQml/pysideqmlregistertype.cpp This error exists since Nov 03 2010 . Fixes: PYSIDE-1077 Change-Id: I8cf9bf7d1d8f8dca1155274cb24408f423557bac Reviewed-by: Friedemann Kleint Reviewed-by: Qt CI Bot Reviewed-by: Cristian Maureira-Fredes --- sources/pyside2/PySide2/QtQml/pysideqmlregistertype.cpp | 4 ++-- sources/pyside2/libpyside/pysideclassinfo.cpp | 2 +- sources/pyside2/libpyside/pysideproperty.cpp | 4 ++-- sources/pyside2/libpyside/pysidesignal.cpp | 4 ++-- sources/pyside2/libpyside/pysideslot.cpp | 4 ++-- 5 files changed, 9 insertions(+), 9 deletions(-) diff --git a/sources/pyside2/PySide2/QtQml/pysideqmlregistertype.cpp b/sources/pyside2/PySide2/QtQml/pysideqmlregistertype.cpp index 2386620ca..db297db7c 100644 --- a/sources/pyside2/PySide2/QtQml/pysideqmlregistertype.cpp +++ b/sources/pyside2/PySide2/QtQml/pysideqmlregistertype.cpp @@ -215,13 +215,13 @@ static int propListTpInit(PyObject *self, PyObject *args, PyObject *kwds) &data->at, &data->clear, &data->count)) { - return 0; + return -1; } PySide::Property::setMetaCallHandler(pySelf, &propListMetaCall); PySide::Property::setTypeName(pySelf, "QQmlListProperty"); PySide::Property::setUserData(pySelf, data); - return 1; + return 0; } void propListTpFree(void *self) diff --git a/sources/pyside2/libpyside/pysideclassinfo.cpp b/sources/pyside2/libpyside/pysideclassinfo.cpp index bf2a1307f..288e7f97c 100644 --- a/sources/pyside2/libpyside/pysideclassinfo.cpp +++ b/sources/pyside2/libpyside/pysideclassinfo.cpp @@ -161,7 +161,7 @@ int classInfoTpInit(PyObject *self, PyObject *args, PyObject *kwds) } } - return PyErr_Occurred() ? -1 : 1; + return PyErr_Occurred() ? -1 : 0; } void classInfoFree(void *self) diff --git a/sources/pyside2/libpyside/pysideproperty.cpp b/sources/pyside2/libpyside/pysideproperty.cpp index a2bf5fd2b..a9cacf869 100644 --- a/sources/pyside2/libpyside/pysideproperty.cpp +++ b/sources/pyside2/libpyside/pysideproperty.cpp @@ -175,7 +175,7 @@ int qpropertyTpInit(PyObject *self, PyObject *args, PyObject *kwds) /*s*/ &doc, /*O*/ &(pData->notify), /*bbbbbb*/ &(pData->designable), &(pData->scriptable), &(pData->stored), &(pData->user), &(pData->constant), &(pData->final))) { - return 0; + return -1; } if (doc) { @@ -198,7 +198,7 @@ int qpropertyTpInit(PyObject *self, PyObject *args, PyObject *kwds) Py_XINCREF(pData->freset); Py_XINCREF(pData->fdel); Py_XINCREF(pData->notify); - return 1; + return 0; } pData->fget = nullptr; pData->fset = nullptr; diff --git a/sources/pyside2/libpyside/pysidesignal.cpp b/sources/pyside2/libpyside/pysidesignal.cpp index 47a5fff43..434ef6ac3 100644 --- a/sources/pyside2/libpyside/pysidesignal.cpp +++ b/sources/pyside2/libpyside/pysidesignal.cpp @@ -212,7 +212,7 @@ int signalTpInit(PyObject *self, PyObject *args, PyObject *kwds) if (!PyArg_ParseTupleAndKeywords(emptyTuple, kwds, "|sO:QtCore." SIGNAL_CLASS_NAME, const_cast(kwlist), &argName, &argArguments)) - return 0; + return -1; bool tupledArgs = false; PySideSignal *data = reinterpret_cast(self); @@ -257,7 +257,7 @@ int signalTpInit(PyObject *self, PyObject *args, PyObject *kwds) PySide::Signal::SignalSignature(sig)); } - return 1; + return 0; } void signalFree(void *self) diff --git a/sources/pyside2/libpyside/pysideslot.cpp b/sources/pyside2/libpyside/pysideslot.cpp index 2cdf32626..2f8e69e8f 100644 --- a/sources/pyside2/libpyside/pysideslot.cpp +++ b/sources/pyside2/libpyside/pysideslot.cpp @@ -104,7 +104,7 @@ int slotTpInit(PyObject *self, PyObject *args, PyObject *kw) if (!PyArg_ParseTupleAndKeywords(emptyTuple, kw, "|sO:QtCore." SLOT_DEC_NAME, const_cast(kwlist), &argName, &argResult)) { - return 0; + return -1; } PySideSlot *data = reinterpret_cast(self); @@ -128,7 +128,7 @@ int slotTpInit(PyObject *self, PyObject *args, PyObject *kw) data->slotData->resultType = argResult ? PySide::Signal::getTypeName(argResult) : PySide::Signal::voidType(); - return 1; + return 0; } PyObject *slotCall(PyObject *self, PyObject *args, PyObject * /* kw */) -- cgit v1.2.3