QWidget: delete 'extra' in dtor

Call d->deleteExtra() in dtor of QWidget to make sure it's cleaned up
before QWidgetPrivate calls it which might access the already deleted
QWidget through deleteTLSysExtra() /
QWindowContainer::toplevelAboutToBeDestroyed(q).

Amends 006cbf658ea1f5986bbe1baafa7c146780320661.

Task-number: QTBUG-130932
Change-Id: I9109072a457cc01abd5d1b4e844a3ed3309d942b
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
(cherry picked from commit 482c41fb6187f3ee1df11e7936fb60f65d12995a)
Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
(cherry picked from commit a6a0a38343fba73b12e63777cf7cd5817e65f7d5)
This commit is contained in:
Christian Ehrlicher 2024-11-09 22:46:52 +01:00 committed by Qt Cherry-pick Bot
parent fab9466816
commit db835040e0

View File

@ -1581,6 +1581,7 @@ QWidget::~QWidget()
#if QT_CONFIG(graphicseffect)
delete d->graphicsEffect;
#endif
d->deleteExtra();
d->isWidget = false;
}