From 54a82ed48a137ceaac08bf8614b7da1b57e97111 Mon Sep 17 00:00:00 2001 From: Marc Mutz Date: Mon, 9 Jan 2023 09:36:04 +0100 Subject: [PATCH] QVarLengthArray::resize_impl: don't default argument, overload Separates the resize(n) and resize(n, v) code paths in preparation for fixing QTBUG-109745. Task-number: QTBUG-109745 Change-Id: I49808ce4dc2f1de0de6af120990b2e00edb47728 Reviewed-by: Thiago Macieira (cherry picked from commit 7c5ff43ea322422f03f6b87768d825f2df6f1652) Reviewed-by: Qt Cherry-pick Bot --- src/corelib/tools/qvarlengtharray.h | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/src/corelib/tools/qvarlengtharray.h b/src/corelib/tools/qvarlengtharray.h index 54603bcec12..469fbda2aac 100644 --- a/src/corelib/tools/qvarlengtharray.h +++ b/src/corelib/tools/qvarlengtharray.h @@ -207,8 +207,14 @@ protected: void append_impl(qsizetype prealloc, void *array, const T *buf, qsizetype n); void reallocate_impl(qsizetype prealloc, void *array, qsizetype size, qsizetype alloc, const T *v = nullptr); - void resize_impl(qsizetype prealloc, void *array, qsizetype sz, const T *v = nullptr) - { reallocate_impl(prealloc, array, sz, qMax(sz, capacity()), v); } + void resize_impl(qsizetype prealloc, void *array, qsizetype sz, const T &v) + { + reallocate_impl(prealloc, array, sz, qMax(sz, capacity()), &v); + } + void resize_impl(qsizetype prealloc, void *array, qsizetype sz) + { + reallocate_impl(prealloc, array, sz, qMax(sz, capacity())); + } bool isValidIterator(const const_iterator &i) const { @@ -378,7 +384,7 @@ public: template = true> #endif void resize(qsizetype sz, const T &v) - { Base::resize_impl(Prealloc, this->array, sz, &v); } + { Base::resize_impl(Prealloc, this->array, sz, v); } inline void clear() { resize(0); } void squeeze() { reallocate(size(), size()); }