From b0294bb1c74ae3f5aabb873435788200da988908 Mon Sep 17 00:00:00 2001 From: Lars Knoll Date: Fri, 22 May 2020 16:46:29 +0200 Subject: [PATCH] Refactor splitString to use QStringView Instead of a QChar * and a length. Change-Id: Ic07e92fe0889e57c19ce7c1bf6902f3a598fad05 Reviewed-by: Volker Hilsheimer --- src/corelib/text/qstring.cpp | 23 +++++++++++------------ 1 file changed, 11 insertions(+), 12 deletions(-) diff --git a/src/corelib/text/qstring.cpp b/src/corelib/text/qstring.cpp index cda1c380bd1..01b4337c2a1 100644 --- a/src/corelib/text/qstring.cpp +++ b/src/corelib/text/qstring.cpp @@ -7183,18 +7183,18 @@ QString QString::number(double n, char f, int prec) namespace { template -static ResultList splitString(const StringSource &source, const QChar *sep, - Qt::SplitBehavior behavior, Qt::CaseSensitivity cs, const int separatorSize) +static ResultList splitString(const StringSource &source, QStringView sep, + Qt::SplitBehavior behavior, Qt::CaseSensitivity cs) { ResultList list; typename StringSource::size_type start = 0; typename StringSource::size_type end; typename StringSource::size_type extra = 0; - while ((end = QtPrivate::findString(QStringView(source.constData(), source.size()), start + extra, QStringView(sep, separatorSize), cs)) != -1) { + while ((end = QtPrivate::findString(QStringView(source.constData(), source.size()), start + extra, sep, cs)) != -1) { if (start != end || behavior == Qt::KeepEmptyParts) list.append(source.mid(start, end - start)); - start = end + separatorSize; - extra = (separatorSize == 0 ? 1 : 0); + start = end + sep.size(); + extra = (sep.size() == 0 ? 1 : 0); } if (start != source.size() || behavior == Qt::KeepEmptyParts) list.append(source.mid(start, -1)); @@ -7245,7 +7245,7 @@ QT_WARNING_POP */ QStringList QString::split(const QString &sep, Qt::SplitBehavior behavior, Qt::CaseSensitivity cs) const { - return splitString(*this, sep.constData(), behavior, cs, sep.size()); + return splitString(*this, sep, behavior, cs); } #if QT_DEPRECATED_SINCE(5, 15) @@ -7275,8 +7275,7 @@ QStringList QString::split(const QString &sep, SplitBehavior behavior, Qt::CaseS QVector QString::splitRef(const QString &sep, Qt::SplitBehavior behavior, Qt::CaseSensitivity cs) const { - return splitString>(QStringRef(this), sep.constData(), behavior, - cs, sep.size()); + return splitString>(QStringRef(this), sep, behavior, cs); } #if QT_DEPRECATED_SINCE(5, 15) @@ -7297,7 +7296,7 @@ QVector QString::splitRef(const QString &sep, SplitBehavior behavior */ QStringList QString::split(QChar sep, Qt::SplitBehavior behavior, Qt::CaseSensitivity cs) const { - return splitString(*this, &sep, behavior, cs, 1); + return splitString(*this, QStringView(&sep, 1), behavior, cs); } #if QT_DEPRECATED_SINCE(5, 15) @@ -7318,7 +7317,7 @@ QStringList QString::split(QChar sep, SplitBehavior behavior, Qt::CaseSensitivit QVector QString::splitRef(QChar sep, Qt::SplitBehavior behavior, Qt::CaseSensitivity cs) const { - return splitString >(QStringRef(this), &sep, behavior, cs, 1); + return splitString >(QStringRef(this), QStringView(&sep, 1), behavior, cs); } #if QT_DEPRECATED_SINCE(5, 15) @@ -7346,7 +7345,7 @@ QVector QString::splitRef(QChar sep, SplitBehavior behavior, Qt::Cas */ QVector QStringRef::split(const QString &sep, Qt::SplitBehavior behavior, Qt::CaseSensitivity cs) const { - return splitString >(*this, sep.constData(), behavior, cs, sep.size()); + return splitString >(*this, sep, behavior, cs); } #if QT_DEPRECATED_SINCE(5, 15) @@ -7367,7 +7366,7 @@ QVector QStringRef::split(const QString &sep, QString::SplitBehavior */ QVector QStringRef::split(QChar sep, Qt::SplitBehavior behavior, Qt::CaseSensitivity cs) const { - return splitString >(*this, &sep, behavior, cs, 1); + return splitString >(*this, QStringView(&sep, 1), behavior, cs); } #if QT_DEPRECATED_SINCE(5, 15)