summaryrefslogtreecommitdiffstats
path: root/src/corelib/tools
diff options
context:
space:
mode:
authorThiago Macieira <thiago.macieira@intel.com>2014-02-03 17:18:11 -0800
committerThe Qt Project <gerrit-noreply@qt-project.org>2014-02-14 00:34:25 +0100
commit5d6c42a253de5dfbcb15991b22e24da184eed890 (patch)
tree75567961fec39417de97e728fe299c3bf7087c9b /src/corelib/tools
parent1f3891d0fbbcb5eb0933a30b277eb2f5a3f2c6f6 (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.cpp62
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;