aboutsummaryrefslogtreecommitdiffstats
path: root/sources/pyside6/libpyside/signalmanager.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'sources/pyside6/libpyside/signalmanager.cpp')
-rw-r--r--sources/pyside6/libpyside/signalmanager.cpp8
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;