diff --git a/src/corelib/tools/qvarlengtharray.h b/src/corelib/tools/qvarlengtharray.h index 50b80d9f54e..67d8bdcdd16 100644 --- a/src/corelib/tools/qvarlengtharray.h +++ b/src/corelib/tools/qvarlengtharray.h @@ -183,7 +183,12 @@ public: } inline bool isEmpty() const { return (s == 0); } inline void resize(qsizetype size); - inline void clear() { resize(0); } + void clear() + { + if constexpr (QTypeInfo::isComplex) + std::destroy_n(data(), size()); + s = 0; + } inline void squeeze(); inline qsizetype capacity() const { return a; }