Add warning about QCoreApplication deferred delete

In some bug reports we got code which does deleteLater()
on QCoreApplication, however this is not going to work as
the user may expect.

In cases where an application uses Qt WebEngine, this leads
to weird looking crashes on exit as webenginecontext is not
destroyed.

Pick-to: 6.2 5.15
Change-Id: I4d284f30b0c7cad15ba6da3d65cdf813c36ee036
Reviewed-by: Michael Brüning <michael.bruning@qt.io>
Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
This commit is contained in:
Michal Klocek 2021-10-27 09:03:53 +02:00
parent ca298bbefc
commit eb5cae26a4

View File

@ -2313,6 +2313,10 @@ void QObject::removeEventFilter(QObject *obj)
*/
void QObject::deleteLater()
{
#ifdef QT_DEBUG
if (qApp == this)
qWarning("You are deferring the delete of QCoreApplication, this may not work as expected.");
#endif
QCoreApplication::postEvent(this, new QDeferredDeleteEvent());
}