From 0e5f60a6cae61c5086f25c039a953a5ade5fa471 Mon Sep 17 00:00:00 2001 From: Anton Kudryavtsev Date: Thu, 31 Aug 2023 18:56:57 +0300 Subject: [PATCH] qhttpheaderparser: use algorithms more MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit No raw loops. Also de-duplicate functors by lambda generator Change-Id: I053890a0a472bfe2846d7007fda8cca779d812a8 Reviewed-by: MÃ¥rten Nordheim --- src/network/access/qhttpheaderparser.cpp | 19 +++++++++++-------- 1 file changed, 11 insertions(+), 8 deletions(-) diff --git a/src/network/access/qhttpheaderparser.cpp b/src/network/access/qhttpheaderparser.cpp index e13ed23492..cb6b479543 100644 --- a/src/network/access/qhttpheaderparser.cpp +++ b/src/network/access/qhttpheaderparser.cpp @@ -133,13 +133,19 @@ const QList >& QHttpHeaderParser::headers() const return fields; } +static auto firstEqualsName(QByteArrayView name) +{ + return [name](const QPair &header) { + return name.compare(header.first, Qt::CaseInsensitive) == 0; + }; +} + QByteArray QHttpHeaderParser::firstHeaderField(QByteArrayView name, const QByteArray &defaultValue) const { - for (auto it = fields.constBegin(); it != fields.constEnd(); ++it) { - if (name.compare(it->first, Qt::CaseInsensitive) == 0) - return it->second; - } + const auto it = std::find_if(fields.begin(), fields.end(), firstEqualsName(name)); + if (it != fields.end()) + return it->second; return defaultValue; } @@ -163,10 +169,7 @@ QList QHttpHeaderParser::headerFieldValues(QByteArrayView name) cons void QHttpHeaderParser::removeHeaderField(QByteArrayView name) { - auto firstEqualsName = [name](const QPair &header) { - return name.compare(header.first, Qt::CaseInsensitive) == 0; - }; - fields.removeIf(firstEqualsName); + fields.removeIf(firstEqualsName(name)); } void QHttpHeaderParser::setHeaderField(const QByteArray &name, const QByteArray &data)