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>
This commit is contained in:
Juha Vuolle 2023-12-04 15:04:43 +02:00
parent 11b19b3341
commit 0bfec6cd11

View File

@ -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;