From 3d6393f5337cd92aadb2801097352451997d6b83 Mon Sep 17 00:00:00 2001 From: Juha Vuolle Date: Thu, 29 Feb 2024 13:08:27 +0200 Subject: [PATCH] DRY QHttpHeaders::combinedValue() implementation MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Task-number: QTBUG-122020 Change-Id: I6232ea725d47800a9236ed90b70004a915bc8b65 Reviewed-by: MÃ¥rten Nordheim (cherry picked from commit de37316160920f88101fbb59e32b401d139f2e80) Reviewed-by: Qt Cherry-pick Bot --- src/network/access/qhttpheaders.cpp | 34 ++++++++++++++--------------- 1 file changed, 16 insertions(+), 18 deletions(-) diff --git a/src/network/access/qhttpheaders.cpp b/src/network/access/qhttpheaders.cpp index d0b6ed7a7a6..18b76a30359 100644 --- a/src/network/access/qhttpheaders.cpp +++ b/src/network/access/qhttpheaders.cpp @@ -790,6 +790,8 @@ public: using Self = QExplicitlySharedDataPointer; static void removeAll(Self &d, const HeaderName &name); + void combinedValue(const HeaderName &name, QByteArray &result) const; + QList
headers; }; @@ -819,6 +821,18 @@ void QHttpHeadersPrivate::removeAll(Self &d, const HeaderName &name) } } +void QHttpHeadersPrivate::combinedValue(const HeaderName &name, QByteArray &result) const +{ + const char* separator = ""; + for (const auto &h : std::as_const(headers)) { + if (h.name == name) { + result.append(separator); + result.append(h.value); + separator = ", "; + } + } +} + /*! Creates a new QHttpHeaders object. */ @@ -1365,15 +1379,7 @@ QByteArray QHttpHeaders::combinedValue(QAnyStringView name) const if (isEmpty()) return result; - const HeaderName hname(name); - const char* separator = ""; - for (const auto &h : std::as_const(d->headers)) { - if (h.name == hname) { - result.append(separator); - result.append(h.value); - separator = ", "; - } - } + d->combinedValue(HeaderName{name}, result); return result; } @@ -1386,15 +1392,7 @@ QByteArray QHttpHeaders::combinedValue(WellKnownHeader name) const if (isEmpty()) return result; - const HeaderName hname(name); - const char* separator = ""; - for (const auto &h : std::as_const(d->headers)) { - if (h.name == hname) { - result.append(separator); - result.append(h.value); - separator = ", "; - } - } + d->combinedValue(HeaderName{name}, result); return result; }