From 08d61b56fa9e901b807b67b07f187e0f54e7551c Mon Sep 17 00:00:00 2001 From: Friedemann Kleint Date: Tue, 2 Jul 2024 10:38:45 +0200 Subject: libpyside: Fix parameters for connections with contexts Use the new SignalManager::callPythonMetaMethod() overload introduced by ed8fc457e04f4ead8a3b2a2da797bdc14bd5b210 in PySideQSlotObject to convert the void ** arguments to Python. Amends acab25a3ccb836818e5089b23d40196bc7414b7a. Change-Id: I024bc7f8df7fa65b8b1761f517a99a854de2cec8 Reviewed-by: Cristian Maureira-Fredes --- sources/pyside6/libpyside/pysideqslotobject_p.h | 22 +++++++++------------- 1 file changed, 9 insertions(+), 13 deletions(-) (limited to 'sources/pyside6/libpyside/pysideqslotobject_p.h') diff --git a/sources/pyside6/libpyside/pysideqslotobject_p.h b/sources/pyside6/libpyside/pysideqslotobject_p.h index d7d258505..827f0193c 100644 --- a/sources/pyside6/libpyside/pysideqslotobject_p.h +++ b/sources/pyside6/libpyside/pysideqslotobject_p.h @@ -15,22 +15,18 @@ namespace PySide class PySideQSlotObject : public QtPrivate::QSlotObjectBase { - PyObject *callable; +public: + explicit PySideQSlotObject(PyObject *callable, const QByteArrayList ¶meterTypes, + const char *returnType = nullptr); + ~PySideQSlotObject(); +private: static void impl(int which, QSlotObjectBase *this_, QObject *receiver, void **args, bool *ret); + void call(void **args); -public: - PySideQSlotObject(PyObject *callable) : QtPrivate::QSlotObjectBase(&impl), callable(callable) - { - Py_INCREF(callable); - } - - ~PySideQSlotObject() - { - auto gstate = PyGILState_Ensure(); - Py_DECREF(callable); - PyGILState_Release(gstate); - } + PyObject *m_callable; + const QByteArrayList m_parameterTypes; + const char *m_returnType; }; -- cgit v1.2.3