diff options
author | Lars Knoll <lars.knoll@qt.io> | 2020-05-22 10:12:38 +0200 |
---|---|---|
committer | Lars Knoll <lars.knoll@qt.io> | 2020-05-25 10:34:31 +0200 |
commit | f1cbc3c9d24024b6bdd8d0346de9d7e548133459 (patch) | |
tree | 346d134eb7601e808fce7b65216b81a3e11643c0 /src | |
parent | f315f42dfd1b1e3956e436cf3fa2de7a57398049 (diff) |
Change QString::toIntegral_helper to use QStringView
This implicitly makes it use qsizetype for the length.
Change-Id: Ib39a5a8dd71e48b45179079f7c7fe5e4edbdb5eb
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Diffstat (limited to 'src')
-rw-r--r-- | src/corelib/text/qstring.cpp | 41 | ||||
-rw-r--r-- | src/corelib/text/qstring.h | 10 |
2 files changed, 25 insertions, 26 deletions
diff --git a/src/corelib/text/qstring.cpp b/src/corelib/text/qstring.cpp index 12b04b8ba7..b1313f0d39 100644 --- a/src/corelib/text/qstring.cpp +++ b/src/corelib/text/qstring.cpp @@ -6656,10 +6656,10 @@ QString QString::vasprintf(const char *cformat, va_list ap) qint64 QString::toLongLong(bool *ok, int base) const { - return toIntegral_helper<qlonglong>(constData(), size(), ok, base); + return toIntegral_helper<qlonglong>(*this, ok, base); } -qlonglong QString::toIntegral_helper(const QChar *data, int len, bool *ok, int base) +qlonglong QString::toIntegral_helper(QStringView string, bool *ok, int base) { #if defined(QT_CHECK_RANGE) if (base != 0 && (base < 2 || base > 36)) { @@ -6668,7 +6668,7 @@ qlonglong QString::toIntegral_helper(const QChar *data, int len, bool *ok, int b } #endif - return QLocaleData::c()->stringToLongLong(QStringView(data, len), base, ok, QLocale::RejectGroupSeparator); + return QLocaleData::c()->stringToLongLong(string, base, ok, QLocale::RejectGroupSeparator); } @@ -6698,10 +6698,10 @@ qlonglong QString::toIntegral_helper(const QChar *data, int len, bool *ok, int b quint64 QString::toULongLong(bool *ok, int base) const { - return toIntegral_helper<qulonglong>(constData(), size(), ok, base); + return toIntegral_helper<qulonglong>(*this, ok, base); } -qulonglong QString::toIntegral_helper(const QChar *data, uint len, bool *ok, int base) +qulonglong QString::toIntegral_helper(QStringView string, bool *ok, uint base) { #if defined(QT_CHECK_RANGE) if (base != 0 && (base < 2 || base > 36)) { @@ -6710,8 +6710,7 @@ qulonglong QString::toIntegral_helper(const QChar *data, uint len, bool *ok, int } #endif - return QLocaleData::c()->stringToUnsLongLong(QStringView(data, len), base, ok, - QLocale::RejectGroupSeparator); + return QLocaleData::c()->stringToUnsLongLong(string, base, ok, QLocale::RejectGroupSeparator); } /*! @@ -6742,7 +6741,7 @@ qulonglong QString::toIntegral_helper(const QChar *data, uint len, bool *ok, int long QString::toLong(bool *ok, int base) const { - return toIntegral_helper<long>(constData(), size(), ok, base); + return toIntegral_helper<long>(*this, ok, base); } /*! @@ -6773,7 +6772,7 @@ long QString::toLong(bool *ok, int base) const ulong QString::toULong(bool *ok, int base) const { - return toIntegral_helper<ulong>(constData(), size(), ok, base); + return toIntegral_helper<ulong>(*this, ok, base); } @@ -6803,7 +6802,7 @@ ulong QString::toULong(bool *ok, int base) const int QString::toInt(bool *ok, int base) const { - return toIntegral_helper<int>(constData(), size(), ok, base); + return toIntegral_helper<int>(*this, ok, base); } /*! @@ -6832,7 +6831,7 @@ int QString::toInt(bool *ok, int base) const uint QString::toUInt(bool *ok, int base) const { - return toIntegral_helper<uint>(constData(), size(), ok, base); + return toIntegral_helper<uint>(*this, ok, base); } /*! @@ -6861,7 +6860,7 @@ uint QString::toUInt(bool *ok, int base) const short QString::toShort(bool *ok, int base) const { - return toIntegral_helper<short>(constData(), size(), ok, base); + return toIntegral_helper<short>(*this, ok, base); } /*! @@ -6890,7 +6889,7 @@ short QString::toShort(bool *ok, int base) const ushort QString::toUShort(bool *ok, int base) const { - return toIntegral_helper<ushort>(constData(), size(), ok, base); + return toIntegral_helper<ushort>(*this, ok, base); } @@ -11805,7 +11804,7 @@ QStringRef QStringRef::trimmed() const qint64 QStringRef::toLongLong(bool *ok, int base) const { - return QString::toIntegral_helper<qint64>(constData(), size(), ok, base); + return QString::toIntegral_helper<qint64>(*this, ok, base); } /*! @@ -11830,7 +11829,7 @@ qint64 QStringRef::toLongLong(bool *ok, int base) const quint64 QStringRef::toULongLong(bool *ok, int base) const { - return QString::toIntegral_helper<quint64>(constData(), size(), ok, base); + return QString::toIntegral_helper<quint64>(*this, ok, base); } /*! @@ -11857,7 +11856,7 @@ quint64 QStringRef::toULongLong(bool *ok, int base) const long QStringRef::toLong(bool *ok, int base) const { - return QString::toIntegral_helper<long>(constData(), size(), ok, base); + return QString::toIntegral_helper<long>(*this, ok, base); } /*! @@ -11884,7 +11883,7 @@ long QStringRef::toLong(bool *ok, int base) const ulong QStringRef::toULong(bool *ok, int base) const { - return QString::toIntegral_helper<ulong>(constData(), size(), ok, base); + return QString::toIntegral_helper<ulong>(*this, ok, base); } @@ -11910,7 +11909,7 @@ ulong QStringRef::toULong(bool *ok, int base) const int QStringRef::toInt(bool *ok, int base) const { - return QString::toIntegral_helper<int>(constData(), size(), ok, base); + return QString::toIntegral_helper<int>(*this, ok, base); } /*! @@ -11935,7 +11934,7 @@ int QStringRef::toInt(bool *ok, int base) const uint QStringRef::toUInt(bool *ok, int base) const { - return QString::toIntegral_helper<uint>(constData(), size(), ok, base); + return QString::toIntegral_helper<uint>(*this, ok, base); } /*! @@ -11960,7 +11959,7 @@ uint QStringRef::toUInt(bool *ok, int base) const short QStringRef::toShort(bool *ok, int base) const { - return QString::toIntegral_helper<short>(constData(), size(), ok, base); + return QString::toIntegral_helper<short>(*this, ok, base); } /*! @@ -11985,7 +11984,7 @@ short QStringRef::toShort(bool *ok, int base) const ushort QStringRef::toUShort(bool *ok, int base) const { - return QString::toIntegral_helper<ushort>(constData(), size(), ok, base); + return QString::toIntegral_helper<ushort>(*this, ok, base); } diff --git a/src/corelib/text/qstring.h b/src/corelib/text/qstring.h index 801d16a853..54c286b945 100644 --- a/src/corelib/text/qstring.h +++ b/src/corelib/text/qstring.h @@ -981,8 +981,8 @@ private: static QByteArray toUtf8_helper(const QString &); static QByteArray toLocal8Bit_helper(const QChar *data, int size); static int toUcs4_helper(const ushort *uc, int length, uint *out); - static qlonglong toIntegral_helper(const QChar *data, int len, bool *ok, int base); - static qulonglong toIntegral_helper(const QChar *data, uint len, bool *ok, int base); + static qlonglong toIntegral_helper(QStringView string, bool *ok, int base); + static qulonglong toIntegral_helper(QStringView string, bool *ok, uint base); void replace_helper(uint *indices, int nIndices, int blen, const QChar *after, int alen); friend class QStringRef; friend class QStringView; @@ -991,13 +991,13 @@ private: friend struct QAbstractConcatenable; template <typename T> static - T toIntegral_helper(const QChar *data, int len, bool *ok, int base) + T toIntegral_helper(QStringView string, bool *ok, int base) { using Int64 = typename std::conditional<std::is_unsigned<T>::value, qulonglong, qlonglong>::type; using Int32 = typename std::conditional<std::is_unsigned<T>::value, uint, int>::type; - // we select the right overload by casting size() to int or uint - Int64 val = toIntegral_helper(data, Int32(len), ok, base); + // we select the right overload by casting base to int or uint + Int64 val = toIntegral_helper(string, ok, Int32(base)); if (T(val) != val) { if (ok) *ok = false; |