QNetworkAccessBackend: Fix living QObjects after QCoreApplication shutdown

Since switching to the plugin bases system for the network backends,
Qt again retains some QObjects after QCoreApplication shutdown.
This was previously fixed in QTBUG-84234, so make sure we destroy the
newly introduced QObjects as well.

Task-number: QTBUG-84234
Change-Id: Ibb411c2dfb716b8f2aea2a3e366253fbd9dd8f64
Reviewed-by: Mårten Nordheim <marten.nordheim@qt.io>
bb10
Mike Achtelik 2021-12-06 14:29:33 +01:00
parent 80a76df178
commit 3f6041fb82
2 changed files with 8 additions and 3 deletions

View File

@ -849,6 +849,10 @@ QNetworkAccessBackendFactory::QNetworkAccessBackendFactory()
/*!
Destructs QNetworkAccessBackendFactory
*/
QNetworkAccessBackendFactory::~QNetworkAccessBackendFactory() = default;
QNetworkAccessBackendFactory::~QNetworkAccessBackendFactory()
{
if (factoryData.exists())
factoryData->removeAll(this);
};
QT_END_NAMESPACE

View File

@ -80,6 +80,7 @@
#include <QHostInfo>
#include "QtCore/qapplicationstatic.h"
#include <QtCore/private/qfactoryloader_p.h>
#if defined(Q_OS_MACOS)
@ -99,13 +100,13 @@
QT_BEGIN_NAMESPACE
Q_GLOBAL_STATIC(QNetworkAccessFileBackendFactory, fileBackend)
Q_APPLICATION_STATIC(QNetworkAccessFileBackendFactory, fileBackend)
#ifdef QT_BUILD_INTERNAL
Q_GLOBAL_STATIC(QNetworkAccessDebugPipeBackendFactory, debugpipeBackend)
#endif
Q_GLOBAL_STATIC_WITH_ARGS(QFactoryLoader, loader,
Q_APPLICATION_STATIC_WITH_ARGS(QFactoryLoader, loader,
(QNetworkAccessBackendFactory_iid,
QLatin1String("/networkaccess")))
#if defined(Q_OS_MACOS)