From 03f2dfca7c8c3962951027cc6f7973fb229a99e0 Mon Sep 17 00:00:00 2001 From: Marc Mutz Date: Mon, 1 Jul 2024 09:21:04 +0200 Subject: [PATCH] QString: de-pessmize QString(QLatin1StringView) Instead of default-construction followed by move-assignment, delegate to the move ctor instead. We can't expect the optimizer to do this transformation for us, since fromLatin1() is out-of-line and compilers are not, yet, known for optimizing atomics (ref-count) around out-of-line function calls. Amends 6abdbb65e59779af56ae25372a853efca19eac59. Pick-to: 6.7 6.5 Change-Id: I75b747c4d5269ae125bf12cda57a1f718aa7a467 Reviewed-by: Ahmad Samir (cherry picked from commit f7853680ef68ce2495662ffc7c7a933655436f22) Reviewed-by: Qt Cherry-pick Bot --- src/corelib/text/qstring.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/corelib/text/qstring.h b/src/corelib/text/qstring.h index 9355df57561..51ab6efa0dc 100644 --- a/src/corelib/text/qstring.h +++ b/src/corelib/text/qstring.h @@ -1224,7 +1224,7 @@ QString QAnyStringView::toString() const // QString inline members // QString::QString(QLatin1StringView latin1) -{ *this = QString::fromLatin1(latin1.data(), latin1.size()); } + : QString{QString::fromLatin1(latin1.data(), latin1.size())} {} const QChar QString::at(qsizetype i) const { verify(i, 1); return QChar(d.data()[i]); } const QChar QString::operator[](qsizetype i) const