|
|
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>
|