diff --git a/src/corelib/kernel/qmetaobject.cpp b/src/corelib/kernel/qmetaobject.cpp index 4768edc803..5bd2f63836 100644 --- a/src/corelib/kernel/qmetaobject.cpp +++ b/src/corelib/kernel/qmetaobject.cpp @@ -166,7 +166,7 @@ static inline QLatin1StringView stringDataView(const QMetaObject *mo, int index) uint offset = mo->d.stringdata[2*index]; uint length = mo->d.stringdata[2*index + 1]; const char *string = reinterpret_cast(mo->d.stringdata) + offset; - return QLatin1StringView(string, length); + return {string, qsizetype(length)}; } static inline QByteArray stringData(const QMetaObject *mo, int index) diff --git a/src/corelib/plugin/qcoffpeparser.cpp b/src/corelib/plugin/qcoffpeparser.cpp index d9dd98a2f4..a90c07fa7f 100644 --- a/src/corelib/plugin/qcoffpeparser.cpp +++ b/src/corelib/plugin/qcoffpeparser.cpp @@ -350,7 +350,7 @@ static QLatin1StringView findSectionName(const IMAGE_SECTION_HEADER *section, QB n = qstrnlen(ptr, stringTable.size() - offset); } - return QLatin1StringView(ptr, n); + return {ptr, n}; } QLibraryScanResult QCoffPeParser::parse(QByteArrayView data, QString *errMsg) diff --git a/src/corelib/serialization/qcborvalue_p.h b/src/corelib/serialization/qcborvalue_p.h index e7981fbcb8..d586d65e82 100644 --- a/src/corelib/serialization/qcborvalue_p.h +++ b/src/corelib/serialization/qcborvalue_p.h @@ -115,7 +115,7 @@ struct ByteData QString toUtf8String() const { return QString::fromUtf8(byte(), len); } QByteArray asByteArrayView() const { return QByteArray::fromRawData(byte(), len); } - QLatin1StringView asLatin1() const { return QLatin1StringView(byte(), len); } + QLatin1StringView asLatin1() const { return {byte(), len}; } QUtf8StringView asUtf8StringView() const { return QUtf8StringView(byte(), len); } QStringView asStringView() const{ return QStringView(utf16(), len / 2); } QString asQStringRaw() const { return QString::fromRawData(utf16(), len / 2); } diff --git a/src/corelib/text/qlocale.cpp b/src/corelib/text/qlocale.cpp index 6a191dfce6..926fa50bd8 100644 --- a/src/corelib/text/qlocale.cpp +++ b/src/corelib/text/qlocale.cpp @@ -228,16 +228,16 @@ QLatin1StringView QLocalePrivate::languageToCode(QLocale::Language language, const LanguageCodeEntry &i = languageCodeList[language]; if (codeTypes.testFlag(QLocale::ISO639Part1) && i.part1.isValid()) - return QLatin1StringView(i.part1.code, 2); + return {i.part1.code, 2}; if (codeTypes.testFlag(QLocale::ISO639Part2B) && i.part2B.isValid()) - return QLatin1StringView(i.part2B.code, 3); + return {i.part2B.code, 3}; if (codeTypes.testFlag(QLocale::ISO639Part2T) && i.part2T.isValid()) - return QLatin1StringView(i.part2T.code, 3); + return {i.part2T.code, 3}; if (codeTypes.testFlag(QLocale::ISO639Part3)) - return QLatin1StringView(i.part3.code, 3); + return {i.part3.code, 3}; return {}; } @@ -247,7 +247,7 @@ QLatin1StringView QLocalePrivate::scriptToCode(QLocale::Script script) if (script == QLocale::AnyScript || script > QLocale::LastScript) return {}; const unsigned char *c = script_code_list + 4 * script; - return QLatin1StringView(reinterpret_cast(c), 4); + return {reinterpret_cast(c), 4}; } QLatin1StringView QLocalePrivate::territoryToCode(QLocale::Territory territory) @@ -256,7 +256,7 @@ QLatin1StringView QLocalePrivate::territoryToCode(QLocale::Territory territory) return {}; const unsigned char *c = territory_code_list + 3 * territory; - return QLatin1StringView(reinterpret_cast(c), c[2] == 0 ? 2 : 3); + return {reinterpret_cast(c), c[2] == 0 ? 2 : 3}; } namespace { diff --git a/src/corelib/text/qstring.h b/src/corelib/text/qstring.h index 497d4b7f4e..bc97585e8c 100644 --- a/src/corelib/text/qstring.h +++ b/src/corelib/text/qstring.h @@ -100,9 +100,9 @@ public: constexpr QLatin1StringView(std::nullptr_t) noexcept : QLatin1StringView() {} constexpr inline explicit QLatin1StringView(const char *s) noexcept : m_size(s ? qsizetype(QtPrivate::lengthHelperPointer(s)) : 0), m_data(s) {} - constexpr explicit QLatin1StringView(const char *f, const char *l) + constexpr QLatin1StringView(const char *f, const char *l) : QLatin1StringView(f, qsizetype(l - f)) {} - constexpr inline explicit QLatin1StringView(const char *s, qsizetype sz) noexcept : m_size(sz), m_data(s) {} + constexpr inline QLatin1StringView(const char *s, qsizetype sz) noexcept : m_size(sz), m_data(s) {} explicit QLatin1StringView(const QByteArray &s) noexcept : m_size(s.size()), m_data(s.constData()) {} constexpr explicit QLatin1StringView(QByteArrayView s) noexcept : m_size(s.size()), m_data(s.data()) {} #else @@ -111,9 +111,9 @@ public: constexpr QLatin1String(std::nullptr_t) noexcept : QLatin1String() {} constexpr inline explicit QLatin1String(const char *s) noexcept : m_size(s ? qsizetype(QtPrivate::lengthHelperPointer(s)) : 0), m_data(s) {} - constexpr explicit QLatin1String(const char *f, const char *l) + constexpr QLatin1String(const char *f, const char *l) : QLatin1String(f, qsizetype(l - f)) {} - constexpr inline explicit QLatin1String(const char *s, qsizetype sz) noexcept : m_size(sz), m_data(s) {} + constexpr inline QLatin1String(const char *s, qsizetype sz) noexcept : m_size(sz), m_data(s) {} explicit QLatin1String(const QByteArray &s) noexcept : m_size(s.size()), m_data(s.constData()) {} constexpr explicit QLatin1String(QByteArrayView s) noexcept : m_size(s.size()), m_data(s.data()) {} #endif // !Q_L1S_VIEW_IS_PRIMARY @@ -271,25 +271,25 @@ public: { if (size_t(n) >= size_t(size())) n = size(); - return QLatin1StringView(m_data, n); + return {m_data, n}; } [[nodiscard]] constexpr QLatin1StringView right(qsizetype n) const { if (size_t(n) >= size_t(size())) n = size(); - return QLatin1StringView(m_data + m_size - n, n); + return {m_data + m_size - n, n}; } [[nodiscard]] constexpr QLatin1StringView sliced(qsizetype pos) const - { verify(pos); return QLatin1StringView(m_data + pos, m_size - pos); } + { verify(pos); return {m_data + pos, m_size - pos}; } [[nodiscard]] constexpr QLatin1StringView sliced(qsizetype pos, qsizetype n) const - { verify(pos, n); return QLatin1StringView(m_data + pos, n); } + { verify(pos, n); return {m_data + pos, n}; } [[nodiscard]] constexpr QLatin1StringView first(qsizetype n) const - { verify(n); return QLatin1StringView(m_data, n); } + { verify(n); return {m_data, n}; } [[nodiscard]] constexpr QLatin1StringView last(qsizetype n) const - { verify(n); return QLatin1StringView(m_data + size() - n, n); } + { verify(n); return {m_data + size() - n, n}; } [[nodiscard]] constexpr QLatin1StringView chopped(qsizetype n) const - { verify(n); return QLatin1StringView(m_data, size() - n); } + { verify(n); return {m_data, size() - n}; } constexpr void chop(qsizetype n) { verify(n); m_size -= n; } @@ -440,7 +440,7 @@ constexpr QAnyStringView::QAnyStringView(QLatin1StringView str) noexcept constexpr QLatin1StringView QAnyStringView::asLatin1StringView() const { Q_ASSERT(isLatin1()); - return QLatin1StringView{m_data_utf8, int(size())}; + return {m_data_utf8, int(size())}; } template @@ -1671,7 +1671,7 @@ inline namespace StringLiterals { constexpr inline QLatin1StringView operator"" _L1(const char *str, size_t size) noexcept { - return QLatin1StringView(str, qsizetype(size)); + return {str, qsizetype(size)}; } } // StringLiterals diff --git a/tests/auto/corelib/text/qlatin1stringview/tst_qlatin1stringview.cpp b/tests/auto/corelib/text/qlatin1stringview/tst_qlatin1stringview.cpp index 5ff2a0742d..c391d45510 100644 --- a/tests/auto/corelib/text/qlatin1stringview/tst_qlatin1stringview.cpp +++ b/tests/auto/corelib/text/qlatin1stringview/tst_qlatin1stringview.cpp @@ -126,6 +126,11 @@ void tst_QLatin1StringView::construction() QCOMPARE(l1s.latin1(), reinterpret_cast(&str[0])); QCOMPARE(l1s.latin1(), "hello"); + QLatin1StringView s1 = {str, 5}; + QCOMPARE(s1, l1s); + QLatin1StringView s2 = {str, str + 5}; + QCOMPARE(s2, l1s); + QByteArrayView helloView(str); helloView = helloView.first(4); l1s = QLatin1StringView(helloView);