diff options
| author | Friedemann Kleint <Friedemann.Kleint@qt.io> | 2025-11-04 12:57:15 +0100 |
|---|---|---|
| committer | Friedemann Kleint <Friedemann.Kleint@qt.io> | 2025-12-16 08:44:46 +0100 |
| commit | 25671b4cfcc6c1023aa9e43bc4cafb7ff88c4051 (patch) | |
| tree | ffd5bfb7dd675a7b2c6deabf8e62cce9a94ad43a /sources/pyside6/libpyside/signalmanager.cpp | |
| parent | b32a536adf4f20939243df29c1c2256d8d1a4fd5 (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.cpp | 2 |
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(); |
