From cb15967014196c03a32bf2423aa350716f1d2dff Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?M=C3=A5rten=20Nordheim?= Date: Thu, 16 Feb 2023 11:19:35 +0100 Subject: [PATCH] QVLA: Skip one unneeded reallocate call for assign() Change-Id: I09bc8835335df82aca10aa16d1902e7a1e79a10c Reviewed-by: Thiago Macieira --- src/corelib/tools/qvarlengtharray.h | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/src/corelib/tools/qvarlengtharray.h b/src/corelib/tools/qvarlengtharray.h index fd8b53b398..a35d6cce40 100644 --- a/src/corelib/tools/qvarlengtharray.h +++ b/src/corelib/tools/qvarlengtharray.h @@ -781,10 +781,8 @@ Q_OUTOFLINE_TEMPLATE void QVLABase::assign_impl(qsizetype prealloc, void *arr // This function only provides the basic exception guarantee. if constexpr (std::is_convertible_v::iterator_category, std::forward_iterator_tag>) { const qsizetype n = std::distance(first, last); - if (n > capacity()) { - reallocate_impl(prealloc, array, 0, capacity()); // clear - reallocate_impl(prealloc, array, 0, n); // reserve n - } + if (n > capacity()) + reallocate_impl(prealloc, array, 0, n); // clear & reserve n } auto dst = begin();