diff options
author | Thiago Macieira <thiago.macieira@intel.com> | 2014-02-03 17:18:11 -0800 |
---|---|---|
committer | The Qt Project <gerrit-noreply@qt-project.org> | 2014-02-14 00:34:25 +0100 |
commit | 5d6c42a253de5dfbcb15991b22e24da184eed890 (patch) | |
tree | 75567961fec39417de97e728fe299c3bf7087c9b /src/corelib/tools | |
parent | 1f3891d0fbbcb5eb0933a30b277eb2f5a3f2c6f6 (diff) |
Remove duplicated trimming of a string
No need to do it in QLocalePrivate::xxxToDouble() because
numberToCLocale() already does it for us. Centralized code = better
code.
Change-Id: Ifecf9119556d4465582212b5be773c18edd13563
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
Diffstat (limited to 'src/corelib/tools')
-rw-r--r-- | src/corelib/tools/qlocale.cpp | 62 |
1 files changed, 13 insertions, 49 deletions
diff --git a/src/corelib/tools/qlocale.cpp b/src/corelib/tools/qlocale.cpp index 0eb202c5e2..a2fe056b94 100644 --- a/src/corelib/tools/qlocale.cpp +++ b/src/corelib/tools/qlocale.cpp @@ -3113,6 +3113,12 @@ bool QLocalePrivate::numberToCLocale(const QChar *str, int len, if (idx == l) return false; + // Check trailing whitespace + for (; idx < l; --l) { + if (!uc[l - 1].isSpace()) + break; + } + while (idx < l) { const QChar in = uc[idx]; @@ -3136,12 +3142,6 @@ bool QLocalePrivate::numberToCLocale(const QChar *str, int len, ++idx; } - // Check trailing whitespace - for (; idx < l; ++idx) { - if (!uc[idx].isSpace()) - return false; - } - result->append('\0'); // Check separators @@ -3150,7 +3150,7 @@ bool QLocalePrivate::numberToCLocale(const QChar *str, int len, return false; - return true; + return idx == l; } bool QLocalePrivate::validateChars(const QString &str, NumberMode numMode, QByteArray *buff, @@ -3250,13 +3250,7 @@ double QLocalePrivate::stringToDouble(const QString &number, bool *ok, GroupSeparatorMode group_sep_mode) const { CharBuff buff; - // Do not use the ternary operator - triggers msvc2012 bug in optimized builds - QString trimmedNumber; - if (group().unicode() == 0xa0) - trimmedNumber = number.trimmed(); - else - trimmedNumber = number; - if (!numberToCLocale(trimmedNumber.unicode(), trimmedNumber.size(), + if (!numberToCLocale(number.unicode(), number.size(), group_sep_mode, &buff)) { if (ok != 0) *ok = false; @@ -3269,13 +3263,7 @@ qlonglong QLocalePrivate::stringToLongLong(const QString &number, int base, bool *ok, GroupSeparatorMode group_sep_mode) const { CharBuff buff; - // Do not use the ternary operator - triggers msvc2012 bug in optimized builds - QString trimmedNumber; - if (group().unicode() == 0xa0) - trimmedNumber = number.trimmed(); - else - trimmedNumber = number; - if (!numberToCLocale(trimmedNumber.unicode(), trimmedNumber.size(), + if (!numberToCLocale(number.unicode(), number.size(), group_sep_mode, &buff)) { if (ok != 0) *ok = false; @@ -3289,13 +3277,7 @@ qulonglong QLocalePrivate::stringToUnsLongLong(const QString &number, int base, bool *ok, GroupSeparatorMode group_sep_mode) const { CharBuff buff; - // Do not use the ternary operator - triggers msvc2012 bug in optimized builds - QString trimmedNumber; - if (group().unicode() == 0xa0) - trimmedNumber = number.trimmed(); - else - trimmedNumber = number; - if (!numberToCLocale(trimmedNumber.unicode(), trimmedNumber.size(), + if (!numberToCLocale(number.unicode(), number.size(), group_sep_mode, &buff)) { if (ok != 0) *ok = false; @@ -3309,13 +3291,7 @@ double QLocalePrivate::stringToDouble(const QStringRef &number, bool *ok, GroupSeparatorMode group_sep_mode) const { CharBuff buff; - QStringRef trimmedNumber; - // Do not use the ternary operator - triggers msvc2012 bug in optimized builds - if (group().unicode() == 0xa0) - trimmedNumber = number.trimmed(); - else - trimmedNumber = number; - if (!numberToCLocale(trimmedNumber.unicode(), trimmedNumber.size(), + if (!numberToCLocale(number.unicode(), number.size(), group_sep_mode, &buff)) { if (ok != 0) *ok = false; @@ -3328,13 +3304,7 @@ qlonglong QLocalePrivate::stringToLongLong(const QStringRef &number, int base, bool *ok, GroupSeparatorMode group_sep_mode) const { CharBuff buff; - QStringRef trimmedNumber; - // Do not use the ternary operator - triggers msvc2012 bug in optimized builds - if (group().unicode() == 0xa0) - trimmedNumber = number.trimmed(); - else - trimmedNumber = number; - if (!numberToCLocale(trimmedNumber.unicode(), trimmedNumber.size(), + if (!numberToCLocale(number.unicode(), number.size(), group_sep_mode, &buff)) { if (ok != 0) *ok = false; @@ -3348,13 +3318,7 @@ qulonglong QLocalePrivate::stringToUnsLongLong(const QStringRef &number, int bas bool *ok, GroupSeparatorMode group_sep_mode) const { CharBuff buff; - QStringRef trimmedNumber; - // Do not use the ternary operator - triggers msvc2012 bug in optimized builds - if (group().unicode() == 0xa0) - trimmedNumber = number.trimmed(); - else - trimmedNumber = number; - if (!numberToCLocale(trimmedNumber.unicode(), trimmedNumber.size(), + if (!numberToCLocale(number.unicode(), number.size(), group_sep_mode, &buff)) { if (ok != 0) *ok = false; |