The GC was not untracked when PySide Property was deleted.
This was found by the new deeper error tracking in debug Python 3.11 .
Fixes: PYSIDE-1960
Change-Id: I5ecdfb88529c22a44575ca9460d6753b1e389079
Pick-to: 6.2 6.3 5.15
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
(cherry picked from commit
ace680f4c5fc8564df9daaa41bf8779c9fffa671)
Gbp-Pq: Name Fix-Property-GC-tracking-for-Python-3.11.patch
{Py_tp_init, (void *)qpropertyTpInit},
{Py_tp_new, (void *)qpropertyTpNew},
{Py_tp_getset, PySidePropertyType_getset},
+ {Py_tp_del, reinterpret_cast<void *>(PyObject_GC_Del)},
{0, 0}
};
// Dotted modulename is crucial for SbkType_FromSpec to work. Is this name right?
// This was not needed before Python 3.8 (Python issue 35810)
Py_DECREF(Py_TYPE(self));
}
+ PyObject_GC_UnTrack(self);
Py_TYPE(self)->tp_free(self);
}