summaryrefslogtreecommitdiffstats
path: root/src/network/access
diff options
context:
space:
mode:
authorJuha Vuolle <juha.vuolle@qt.io>2023-12-04 15:04:43 +0200
committerJuha Vuolle <juha.vuolle@qt.io>2023-12-08 15:53:36 +0200
commit0bfec6cd1183f4985733e355f01f6e12df2fb2be (patch)
tree8c618c2355b787883ce0c75467b1f3438c67b3ba /src/network/access
parent11b19b334184f2b58f2be2816b5c764100c1bc46 (diff)
QHttpHeaders: reserve memory for headers when creating from a container
To avoid any potential resizes during append looping Task-number: QTBUG-119002 Change-Id: I8f4c391f05b5c5bd0b48a4f17b11996652006508 Reviewed-by: MÃ¥rten Nordheim <marten.nordheim@qt.io> Reviewed-by: Marc Mutz <marc.mutz@qt.io> Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org> Reviewed-by: Ivan Solovev <ivan.solovev@qt.io>
Diffstat (limited to 'src/network/access')
-rw-r--r--src/network/access/qhttpheaders.cpp3
1 files changed, 3 insertions, 0 deletions
diff --git a/src/network/access/qhttpheaders.cpp b/src/network/access/qhttpheaders.cpp
index a66adf8161..de2f7e148a 100644
--- a/src/network/access/qhttpheaders.cpp
+++ b/src/network/access/qhttpheaders.cpp
@@ -528,6 +528,7 @@ QHttpHeaders::QHttpHeaders() : d(new QHttpHeadersPrivate)
QHttpHeaders QHttpHeaders::fromListOfPairs(const QList<std::pair<QByteArray, QByteArray>> &headers)
{
QHttpHeaders h;
+ h.d->headers.reserve(headers.size());
for (const auto &header : headers)
h.append(header.first, header.second);
return h;
@@ -542,6 +543,7 @@ QHttpHeaders QHttpHeaders::fromListOfPairs(const QList<std::pair<QByteArray, QBy
QHttpHeaders QHttpHeaders::fromMultiMap(const QMultiMap<QByteArray, QByteArray> &headers)
{
QHttpHeaders h;
+ h.d->headers.reserve(headers.size());
for (const auto &[name,value] : headers.asKeyValueRange())
h.append(name, value);
return h;
@@ -556,6 +558,7 @@ QHttpHeaders QHttpHeaders::fromMultiMap(const QMultiMap<QByteArray, QByteArray>
QHttpHeaders QHttpHeaders::fromMultiHash(const QMultiHash<QByteArray, QByteArray> &headers)
{
QHttpHeaders h;
+ h.d->headers.reserve(headers.size());
for (const auto &[name,value] : headers.asKeyValueRange())
h.append(name, value);
return h;