aboutsummaryrefslogtreecommitdiffstats
path: root/sources/pyside6/libpyside/signalmanager.cpp
diff options
context:
space:
mode:
authorFriedemann Kleint <Friedemann.Kleint@qt.io>2025-11-04 12:57:15 +0100
committerFriedemann Kleint <Friedemann.Kleint@qt.io>2025-12-16 08:44:46 +0100
commit25671b4cfcc6c1023aa9e43bc4cafb7ff88c4051 (patch)
treeffd5bfb7dd675a7b2c6deabf8e62cce9a94ad43a /sources/pyside6/libpyside/signalmanager.cpp
parentb32a536adf4f20939243df29c1c2256d8d1a4fd5 (diff)
libpyside/libpysideqml: Introduce base class for the properties
Previously, PySidePropertyPrivate was used as a base class for QmlListPropertyPrivate. Whereas PySidePropertyPrivate kept track of the fget()/fset() and other helper functions and provided tp_traverse and tp_clear, QmlListPropertyPrivate only kept flat pointers to its helper functions (at(), append(), ...). This can cause issues if for example a lambda is passed as callable. QmlListPropertyPrivate also does not use any of the fget()/fset() members. To address this, extract a new base class PySidePropertyBase class which has only the relevant members for both, and move PySidePropertyPrivate into the source file. Add Py_TPFLAGS_HAVE_GC to QmlListPropertyPrivate and track its members similar to PySidePropertyPrivate. Task-number: PYSIDE-3227 Change-Id: I7a739aa7b6f2c2811bde5b99a397ac752b20b69c Reviewed-by: Shyamnath Premnadh <Shyamnath.Premnadh@qt.io>
Diffstat (limited to 'sources/pyside6/libpyside/signalmanager.cpp')
-rw-r--r--sources/pyside6/libpyside/signalmanager.cpp2
1 files changed, 1 insertions, 1 deletions
diff --git a/sources/pyside6/libpyside/signalmanager.cpp b/sources/pyside6/libpyside/signalmanager.cpp
index 211588eea..01b08e283 100644
--- a/sources/pyside6/libpyside/signalmanager.cpp
+++ b/sources/pyside6/libpyside/signalmanager.cpp
@@ -404,7 +404,7 @@ int SignalManagerPrivate::qtPropertyMetacall(QObject *object,
PyErr_WarnFormat(PyExc_RuntimeWarning, 0,
ign ? "Unknown property type '%s' of QObject '%s' used in fset"
: "Unknown property type '%s' of QObject '%s' used in fget with %R",
- pp->d->typeName.constData(), metaObject->className(), errorStash.getException());
+ pp->d->typeName().constData(), metaObject->className(), errorStash.getException());
if (PyErr_Occurred())
Shiboken::Errors::storeErrorOrPrint();
errorStash.release();