aboutsummaryrefslogtreecommitdiffstats
path: root/sources/pyside6/libpyside/pysideqslotobject_p.cpp
diff options
context:
space:
mode:
authorFriedemann Kleint <Friedemann.Kleint@qt.io>2024-07-08 14:31:21 +0200
committerFriedemann Kleint <Friedemann.Kleint@qt.io>2024-07-29 08:45:29 +0200
commit51df6eb4c0a1b02cc476d1fe5a7f9f30cb60e600 (patch)
treeb0b03348da6a84463b05773cc9a99fc0649e6fc1 /sources/pyside6/libpyside/pysideqslotobject_p.cpp
parent843909f0215fa0ef0a6b41db380d3aae09b25b7f (diff)
libpyside: Use the new DynamicSlot in PySideQSlotObject
Task-number: PYSIDE-2810 Change-Id: I51bd24520cc9fd420ee8256f1278bb17cd406235 Reviewed-by: Christian Tismer <tismer@stackless.com>
Diffstat (limited to 'sources/pyside6/libpyside/pysideqslotobject_p.cpp')
-rw-r--r--sources/pyside6/libpyside/pysideqslotobject_p.cpp14
1 files changed, 5 insertions, 9 deletions
diff --git a/sources/pyside6/libpyside/pysideqslotobject_p.cpp b/sources/pyside6/libpyside/pysideqslotobject_p.cpp
index 40b011fcf..279a3d4e0 100644
--- a/sources/pyside6/libpyside/pysideqslotobject_p.cpp
+++ b/sources/pyside6/libpyside/pysideqslotobject_p.cpp
@@ -2,7 +2,7 @@
// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
#include "pysideqslotobject_p.h"
-#include "signalmanager.h"
+#include "dynamicslot_p.h"
#include <gilstate.h>
@@ -13,23 +13,19 @@ PySideQSlotObject::PySideQSlotObject(PyObject *callable,
const QByteArrayList &parameterTypes,
const char *returnType) :
QtPrivate::QSlotObjectBase(&impl),
- m_callable(callable),
+ m_dynamicSlot(DynamicSlot::create(callable)),
m_parameterTypes(parameterTypes),
m_returnType(returnType)
{
- Py_INCREF(callable);
}
-PySideQSlotObject::~PySideQSlotObject()
+void PySideQSlotObject::call(void **args)
{
Shiboken::GilState state;
- Py_DECREF(m_callable);
+ m_dynamicSlot->call(m_parameterTypes, m_returnType, args);
}
-void PySideQSlotObject::call(void **args)
-{
- SignalManager::callPythonMetaMethod(m_parameterTypes, m_returnType, args, m_callable);
-}
+PySideQSlotObject::~PySideQSlotObject() = default;
void PySideQSlotObject::impl(int which, QSlotObjectBase *this_, QObject *receiver,
void **args, bool *ret)