From 99f0db695ab54ba0cd88c6a53ddd2d712525ecc3 Mon Sep 17 00:00:00 2001 From: Marc Mutz Date: Sat, 10 Jul 2021 23:17:04 +0200 Subject: [PATCH] QNetworkReply: hold QAtomicInt in shared_ptr, not QSharedPointer MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Ditto QNetworkAccessAuthenticationManager. QSharedPointer performs twice as many atomic operations per pointer copy as std::shared_ptr, and this is private API, we're not bound by BC constraints, so we can port to the more efficient version. Change-Id: I59dc09ff4eb3b4acf5d7a68695752a9a7110d8d3 Reviewed-by: Qt CI Bot Reviewed-by: MÃ¥rten Nordheim --- src/network/access/qhttpthreaddelegate_p.h | 6 +++--- src/network/access/qnetworkaccessmanager_p.h | 4 ++-- src/network/access/qnetworkreplyhttpimpl.cpp | 4 ++-- src/network/access/qnetworkreplyhttpimpl_p.h | 4 ++-- src/network/access/qnetworkreplywasmimpl_p.h | 4 ++-- 5 files changed, 11 insertions(+), 11 deletions(-) diff --git a/src/network/access/qhttpthreaddelegate_p.h b/src/network/access/qhttpthreaddelegate_p.h index f0b9b8edf3..bdafeb3693 100644 --- a/src/network/access/qhttpthreaddelegate_p.h +++ b/src/network/access/qhttpthreaddelegate_p.h @@ -97,13 +97,13 @@ public: qint64 readBufferMaxSize; qint64 bytesEmitted; // From backend, modified by us for signal compression - QSharedPointer pendingDownloadData; - QSharedPointer pendingDownloadProgress; + std::shared_ptr pendingDownloadData; + std::shared_ptr pendingDownloadProgress; #ifndef QT_NO_NETWORKPROXY QNetworkProxy cacheProxy; QNetworkProxy transparentProxy; #endif - QSharedPointer authenticationManager; + std::shared_ptr authenticationManager; bool synchronous; qint64 connectionCacheExpiryTimeoutSeconds; diff --git a/src/network/access/qnetworkaccessmanager_p.h b/src/network/access/qnetworkaccessmanager_p.h index 3d5d7231b4..ad03cab9a2 100644 --- a/src/network/access/qnetworkaccessmanager_p.h +++ b/src/network/access/qnetworkaccessmanager_p.h @@ -86,7 +86,7 @@ public: cookieJarCreated(false), defaultAccessControl(true), redirectPolicy(QNetworkRequest::NoLessSafeRedirectPolicy), - authenticationManager(QSharedPointer::create()) + authenticationManager(std::make_shared()) { } ~QNetworkAccessManagerPrivate(); @@ -150,7 +150,7 @@ public: QNetworkRequest::RedirectPolicy redirectPolicy = QNetworkRequest::NoLessSafeRedirectPolicy; // The cache with authorization data: - QSharedPointer authenticationManager; + std::shared_ptr authenticationManager; // this cache can be used by individual backends to cache e.g. their TCP connections to a server // and use the connections for multiple requests. diff --git a/src/network/access/qnetworkreplyhttpimpl.cpp b/src/network/access/qnetworkreplyhttpimpl.cpp index 4fc1f81c95..a7b262a32d 100644 --- a/src/network/access/qnetworkreplyhttpimpl.cpp +++ b/src/network/access/qnetworkreplyhttpimpl.cpp @@ -478,8 +478,8 @@ QNetworkReplyHttpImplPrivate::QNetworkReplyHttpImplPrivate() , downloadBufferReadPosition(0) , downloadBufferCurrentSize(0) , downloadZerocopyBuffer(nullptr) - , pendingDownloadDataEmissions(QSharedPointer::create()) - , pendingDownloadProgressEmissions(QSharedPointer::create()) + , pendingDownloadDataEmissions(std::make_shared()) + , pendingDownloadProgressEmissions(std::make_shared()) #ifndef QT_NO_SSL , pendingIgnoreAllSslErrors(false) #endif diff --git a/src/network/access/qnetworkreplyhttpimpl_p.h b/src/network/access/qnetworkreplyhttpimpl_p.h index 8fb59cdd49..c2394488bd 100644 --- a/src/network/access/qnetworkreplyhttpimpl_p.h +++ b/src/network/access/qnetworkreplyhttpimpl_p.h @@ -247,8 +247,8 @@ public: char* downloadZerocopyBuffer; // Will be increased by HTTP thread: - QSharedPointer pendingDownloadDataEmissions; - QSharedPointer pendingDownloadProgressEmissions; + std::shared_ptr pendingDownloadDataEmissions; + std::shared_ptr pendingDownloadProgressEmissions; #ifndef QT_NO_SSL diff --git a/src/network/access/qnetworkreplywasmimpl_p.h b/src/network/access/qnetworkreplywasmimpl_p.h index 407890d837..83e39faddc 100644 --- a/src/network/access/qnetworkreplywasmimpl_p.h +++ b/src/network/access/qnetworkreplywasmimpl_p.h @@ -123,8 +123,8 @@ public: void _q_bufferOutgoingData(); void _q_bufferOutgoingDataFinished(); - QSharedPointer pendingDownloadData; - QSharedPointer pendingDownloadProgress; + std::shared_ptr pendingDownloadData; + std::shared_ptr pendingDownloadProgress; qint64 bytesDownloaded; qint64 bytesBuffered;