diff options
Diffstat (limited to 'sources/pyside6')
| -rw-r--r-- | sources/pyside6/libpyside/signalmanager.cpp | 8 |
1 files changed, 4 insertions, 4 deletions
diff --git a/sources/pyside6/libpyside/signalmanager.cpp b/sources/pyside6/libpyside/signalmanager.cpp index 9120db5f8..9a9d1c19b 100644 --- a/sources/pyside6/libpyside/signalmanager.cpp +++ b/sources/pyside6/libpyside/signalmanager.cpp @@ -23,6 +23,7 @@ #include <QtCore/QByteArrayView> #include <QtCore/QDebug> #include <QtCore/QHash> +#include <QtCore/QScopedPointer> #include <algorithm> #include <limits> @@ -494,11 +495,11 @@ int SignalManager::callPythonMetaMethod(const QMetaMethod &method, void **args, } if (pyArguments) { - Shiboken::Conversions::SpecificConverter *retConverter = nullptr; + QScopedPointer<Shiboken::Conversions::SpecificConverter> retConverter; const char *returnType = method.typeName(); if (returnType && std::strcmp("", returnType) && std::strcmp("void", returnType)) { - retConverter = new Shiboken::Conversions::SpecificConverter(returnType); - if (!retConverter || !*retConverter) { + retConverter.reset(new Shiboken::Conversions::SpecificConverter(returnType)); + if (!retConverter->isValid()) { PyErr_Format(PyExc_RuntimeError, "Can't find converter for '%s' to call Python meta method.", returnType); return -1; } @@ -513,7 +514,6 @@ int SignalManager::callPythonMetaMethod(const QMetaMethod &method, void **args, if (!retval.isNull() && retval != Py_None && !PyErr_Occurred() && retConverter) { retConverter->toCpp(retval, args[0]); } - delete retConverter; } return -1; |
