summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorIvan Solovev <ivan.solovev@qt.io>2023-08-18 16:17:22 +0200
committerQt Cherry-pick Bot <cherrypick_bot@qt-project.org>2023-09-12 12:49:14 +0000
commit4ed36a52d0c67f5615ca97fa2107bce21613f59c (patch)
treedc112f960fca853dd610823c39ac747cfb132ee5 /src
parenta7b34c221d266e9b84077de90127d0e3ba252f5c (diff)
Port away from QScopedPointer::take() - non-trivial case
The API was deprecated in Qt 6.0, so use std::unique_ptr instead. The QWebEngineUrlRequestInfo's destructor is private, so create a custom deleter struct which properly deletes the object. This works, because InterceptedRequest is a friend of QWebEngineUrlRequestInfo. Pick-to: 6.5 Change-Id: I69e1b31360ec5ae4b32b6e7f0416b39aecb2f5f9 Reviewed-by: Marc Mutz <marc.mutz@qt.io> Reviewed-by: Michael BrĂ¼ning <michael.bruning@qt.io> (cherry picked from commit 6bd52dc09c0b4d32833c6ffef690838b2cbc73e7) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
Diffstat (limited to 'src')
-rw-r--r--src/core/net/proxying_url_loader_factory_qt.cpp12
1 files changed, 8 insertions, 4 deletions
diff --git a/src/core/net/proxying_url_loader_factory_qt.cpp b/src/core/net/proxying_url_loader_factory_qt.cpp
index 79e036566..6743ff888 100644
--- a/src/core/net/proxying_url_loader_factory_qt.cpp
+++ b/src/core/net/proxying_url_loader_factory_qt.cpp
@@ -126,8 +126,6 @@ public:
void PauseReadingBodyFromNet() override;
void ResumeReadingBodyFromNet() override;
- static inline void cleanup(QWebEngineUrlRequestInfo *info) { delete info; }
-
private:
void InterceptOnUIThread();
void ContinueAfterIntercept();
@@ -169,7 +167,13 @@ private:
const net::MutableNetworkTrafficAnnotationTag traffic_annotation_;
- QScopedPointer<QWebEngineUrlRequestInfo, InterceptedRequest> request_info_;
+ struct RequestInfoDeleter
+ {
+ void operator()(QWebEngineUrlRequestInfo *ptr) const
+ { delete ptr; }
+ };
+
+ std::unique_ptr<QWebEngineUrlRequestInfo, RequestInfoDeleter> request_info_;
mojo::Receiver<network::mojom::URLLoader> proxied_loader_receiver_;
mojo::Remote<network::mojom::URLLoaderClient> target_client_;
@@ -354,7 +358,7 @@ void InterceptedRequest::ContinueAfterIntercept()
if (request_info_) {
// cleanup in scope because of delete this and it's not needed else where after
- decltype(request_info_) scoped_request_info(request_info_.take());
+ const auto scoped_request_info = std::move(request_info_);
QWebEngineUrlRequestInfoPrivate &info = *scoped_request_info->d_ptr;
if (info.changed) {