aboutsummaryrefslogtreecommitdiffstats
path: root/sources/pyside6/libpyside/pysidepropertybase_p.h
Commit message (Collapse)AuthorAgeFilesLines
* libpyside/libpysideqml: Introduce base class for the propertiesFriedemann Kleint32 hours1-0/+95
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>