diff options
author | Thiago Macieira <thiago.macieira@intel.com> | 2014-02-03 17:33:00 -0800 |
---|---|---|
committer | The Qt Project <gerrit-noreply@qt-project.org> | 2014-02-14 00:34:25 +0100 |
commit | 27ad3894e67a89439905321b388d75a278b4399a (patch) | |
tree | c9d1eff7ce94a509c6b730776da3031f4fcf3155 /src/corelib | |
parent | 5d6c42a253de5dfbcb15991b22e24da184eed890 (diff) |
Merge the pairs of stringTo{Double,LongLong,UnsLongLong}
The difference between them was simply whether they operated on QString
or QStringRef. So drop down to what's common between them: a pointer and
a length (or two pointers, but numberToCLocale already operates on a
pointer and a length).
Change-Id: Ie7c8955ac13d6023761e6d3bafe7ab04bd6984e1
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
Diffstat (limited to 'src/corelib')
-rw-r--r-- | src/corelib/tools/qlocale.cpp | 68 | ||||
-rw-r--r-- | src/corelib/tools/qlocale_p.h | 11 | ||||
-rw-r--r-- | src/corelib/tools/qstring.cpp | 12 |
3 files changed, 21 insertions, 70 deletions
diff --git a/src/corelib/tools/qlocale.cpp b/src/corelib/tools/qlocale.cpp index a2fe056b94..d2d49637d3 100644 --- a/src/corelib/tools/qlocale.cpp +++ b/src/corelib/tools/qlocale.cpp @@ -1237,7 +1237,7 @@ qlonglong QLocale::toLongLong(const QString &s, bool *ok) const ? QLocalePrivate::FailOnGroupSeparators : QLocalePrivate::ParseGroupSeparators; - return d->stringToLongLong(s, 10, ok, mode); + return d->stringToLongLong(s.constData(), s.size(), 10, ok, mode); } /*! @@ -1261,7 +1261,7 @@ qulonglong QLocale::toULongLong(const QString &s, bool *ok) const ? QLocalePrivate::FailOnGroupSeparators : QLocalePrivate::ParseGroupSeparators; - return d->stringToUnsLongLong(s, 10, ok, mode); + return d->stringToUnsLongLong(s.constData(), s.size(), 10, ok, mode); } /*! @@ -1320,7 +1320,7 @@ double QLocale::toDouble(const QString &s, bool *ok) const ? QLocalePrivate::FailOnGroupSeparators : QLocalePrivate::ParseGroupSeparators; - return d->stringToDouble(s, ok, mode); + return d->stringToDouble(s.constData(), s.size(), ok, mode); } /*! @@ -1450,7 +1450,7 @@ qlonglong QLocale::toLongLong(const QStringRef &s, bool *ok) const ? QLocalePrivate::FailOnGroupSeparators : QLocalePrivate::ParseGroupSeparators; - return d->stringToLongLong(s, 10, ok, mode); + return d->stringToLongLong(s.constData(), s.size(), 10, ok, mode); } /*! @@ -1476,7 +1476,7 @@ qulonglong QLocale::toULongLong(const QStringRef &s, bool *ok) const ? QLocalePrivate::FailOnGroupSeparators : QLocalePrivate::ParseGroupSeparators; - return d->stringToUnsLongLong(s, 10, ok, mode); + return d->stringToUnsLongLong(s.constData(), s.size(), 10, ok, mode); } /*! @@ -1537,7 +1537,7 @@ double QLocale::toDouble(const QStringRef &s, bool *ok) const ? QLocalePrivate::FailOnGroupSeparators : QLocalePrivate::ParseGroupSeparators; - return d->stringToDouble(s, ok, mode); + return d->stringToDouble(s.constData(), s.size(), ok, mode); } @@ -3246,12 +3246,11 @@ bool QLocalePrivate::validateChars(const QString &str, NumberMode numMode, QByte return true; } -double QLocalePrivate::stringToDouble(const QString &number, bool *ok, +double QLocalePrivate::stringToDouble(const QChar *begin, int len, bool *ok, GroupSeparatorMode group_sep_mode) const { CharBuff buff; - if (!numberToCLocale(number.unicode(), number.size(), - group_sep_mode, &buff)) { + if (!numberToCLocale(begin, len, group_sep_mode, &buff)) { if (ok != 0) *ok = false; return 0.0; @@ -3259,12 +3258,11 @@ double QLocalePrivate::stringToDouble(const QString &number, bool *ok, return bytearrayToDouble(buff.constData(), ok); } -qlonglong QLocalePrivate::stringToLongLong(const QString &number, int base, +qlonglong QLocalePrivate::stringToLongLong(const QChar *begin, int len, int base, bool *ok, GroupSeparatorMode group_sep_mode) const { CharBuff buff; - if (!numberToCLocale(number.unicode(), number.size(), - group_sep_mode, &buff)) { + if (!numberToCLocale(begin, len, group_sep_mode, &buff)) { if (ok != 0) *ok = false; return 0; @@ -3273,53 +3271,11 @@ qlonglong QLocalePrivate::stringToLongLong(const QString &number, int base, return bytearrayToLongLong(buff.constData(), base, ok); } -qulonglong QLocalePrivate::stringToUnsLongLong(const QString &number, int base, +qulonglong QLocalePrivate::stringToUnsLongLong(const QChar *begin, int len, int base, bool *ok, GroupSeparatorMode group_sep_mode) const { CharBuff buff; - if (!numberToCLocale(number.unicode(), number.size(), - group_sep_mode, &buff)) { - if (ok != 0) - *ok = false; - return 0; - } - - return bytearrayToUnsLongLong(buff.constData(), base, ok); -} - -double QLocalePrivate::stringToDouble(const QStringRef &number, bool *ok, - GroupSeparatorMode group_sep_mode) const -{ - CharBuff buff; - if (!numberToCLocale(number.unicode(), number.size(), - group_sep_mode, &buff)) { - if (ok != 0) - *ok = false; - return 0.0; - } - return bytearrayToDouble(buff.constData(), ok); -} - -qlonglong QLocalePrivate::stringToLongLong(const QStringRef &number, int base, - bool *ok, GroupSeparatorMode group_sep_mode) const -{ - CharBuff buff; - if (!numberToCLocale(number.unicode(), number.size(), - group_sep_mode, &buff)) { - if (ok != 0) - *ok = false; - return 0; - } - - return bytearrayToLongLong(buff.constData(), base, ok); -} - -qulonglong QLocalePrivate::stringToUnsLongLong(const QStringRef &number, int base, - bool *ok, GroupSeparatorMode group_sep_mode) const -{ - CharBuff buff; - if (!numberToCLocale(number.unicode(), number.size(), - group_sep_mode, &buff)) { + if (!numberToCLocale(begin, len, group_sep_mode, &buff)) { if (ok != 0) *ok = false; return 0; diff --git a/src/corelib/tools/qlocale_p.h b/src/corelib/tools/qlocale_p.h index 4b5b4d67b5..b544a55c31 100644 --- a/src/corelib/tools/qlocale_p.h +++ b/src/corelib/tools/qlocale_p.h @@ -306,14 +306,9 @@ public: int base = 10, int width = -1, unsigned flags = NoFlags) const; - double stringToDouble(const QString &num, bool *ok, GroupSeparatorMode group_sep_mode) const; - qint64 stringToLongLong(const QString &num, int base, bool *ok, GroupSeparatorMode group_sep_mode) const; - quint64 stringToUnsLongLong(const QString &num, int base, bool *ok, GroupSeparatorMode group_sep_mode) const; - - double stringToDouble(const QStringRef &num, bool *ok, GroupSeparatorMode group_sep_mode) const; - qint64 stringToLongLong(const QStringRef &num, int base, bool *ok, GroupSeparatorMode group_sep_mode) const; - quint64 stringToUnsLongLong(const QStringRef &num, int base, bool *ok, GroupSeparatorMode group_sep_mode) const; - + double stringToDouble(const QChar *begin, int len, bool *ok, GroupSeparatorMode group_sep_mode) const; + qint64 stringToLongLong(const QChar *begin, int len, int base, bool *ok, GroupSeparatorMode group_sep_mode) const; + quint64 stringToUnsLongLong(const QChar *begin, int len, int base, bool *ok, GroupSeparatorMode group_sep_mode) const; static double bytearrayToDouble(const char *num, bool *ok, bool *overflow = 0); static qint64 bytearrayToLongLong(const char *num, int base, bool *ok, bool *overflow = 0); diff --git a/src/corelib/tools/qstring.cpp b/src/corelib/tools/qstring.cpp index 9f939dd795..909e50e86e 100644 --- a/src/corelib/tools/qstring.cpp +++ b/src/corelib/tools/qstring.cpp @@ -6078,7 +6078,7 @@ qint64 QString::toLongLong(bool *ok, int base) const #endif QLocale c_locale(QLocale::C); - return c_locale.d->stringToLongLong(*this, base, ok, QLocalePrivate::FailOnGroupSeparators); + return c_locale.d->stringToLongLong(constData(), size(), base, ok, QLocalePrivate::FailOnGroupSeparators); } /*! @@ -6113,7 +6113,7 @@ quint64 QString::toULongLong(bool *ok, int base) const #endif QLocale c_locale(QLocale::C); - return c_locale.d->stringToUnsLongLong(*this, base, ok, QLocalePrivate::FailOnGroupSeparators); + return c_locale.d->stringToUnsLongLong(constData(), size(), base, ok, QLocalePrivate::FailOnGroupSeparators); } /*! @@ -6352,7 +6352,7 @@ ushort QString::toUShort(bool *ok, int base) const double QString::toDouble(bool *ok) const { QLocale c_locale(QLocale::C); - return c_locale.d->stringToDouble(*this, ok, QLocalePrivate::FailOnGroupSeparators); + return c_locale.d->stringToDouble(constData(), size(), ok, QLocalePrivate::FailOnGroupSeparators); } /*! @@ -9622,7 +9622,7 @@ qint64 QStringRef::toLongLong(bool *ok, int base) const #endif QLocale c_locale(QLocale::C); - return c_locale.d->stringToLongLong(*this, base, ok, QLocalePrivate::FailOnGroupSeparators); + return c_locale.d->stringToLongLong(constData(), size(), base, ok, QLocalePrivate::FailOnGroupSeparators); } /*! @@ -9655,7 +9655,7 @@ quint64 QStringRef::toULongLong(bool *ok, int base) const #endif QLocale c_locale(QLocale::C); - return c_locale.d->stringToUnsLongLong(*this, base, ok, QLocalePrivate::FailOnGroupSeparators); + return c_locale.d->stringToUnsLongLong(constData(), size(), base, ok, QLocalePrivate::FailOnGroupSeparators); } /*! @@ -9873,7 +9873,7 @@ ushort QStringRef::toUShort(bool *ok, int base) const double QStringRef::toDouble(bool *ok) const { QLocale c_locale(QLocale::C); - return c_locale.d->stringToDouble(*this, ok, QLocalePrivate::FailOnGroupSeparators); + return c_locale.d->stringToDouble(constData(), size(), ok, QLocalePrivate::FailOnGroupSeparators); } /*! |