diff options
author | Friedemann Kleint <Friedemann.Kleint@qt.io> | 2018-09-18 10:57:47 +0200 |
---|---|---|
committer | Friedemann Kleint <Friedemann.Kleint@qt.io> | 2018-10-15 07:21:36 +0000 |
commit | 6bfbfd6edd0f9701664698768f9ec8d29f96a5bd (patch) | |
tree | dbd9d10d8f67243be79fea6d0e32536b79ba83b9 /sources/shiboken2/generators | |
parent | 954fe04e4d4cb3f00d2891dc1a0843e91b115e7f (diff) |
Fix crash when garbage collecting in a non-GUI thread
If a GUI class happens to be detected unreferenced when garbage
collecting in a non-GUI thread and is subsequently deleted, crashes
can occur for QWidgets and similar classes.
The hitherto unimplemented delete-in-main-thread" attribute should be
used.
Add the missing implementation. Add the field to shiboken's type entry
and SbkObjectTypePrivate class and pass it via newly introduced flags
to introduceWrapperType().
Defer the deletion when invoked from the background thread and store
the list of destructors in a list in binding manager run by
Py_AddPendingCall().
Task-number: PYSIDE-743
Task-number: PYSIDE-810
Change-Id: Id4668a6a1e32392be9dcf1229e1e10c492b2a5f5
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
Reviewed-by: Cristian Maureira-Fredes <cristian.maureira-fredes@qt.io>
Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
Diffstat (limited to 'sources/shiboken2/generators')
0 files changed, 0 insertions, 0 deletions