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>
bb10
Thiago Macieira 2014-02-03 17:18:11 -08:00 committed by The Qt Project
parent 1f3891d0fb
commit 5d6c42a253
1 changed files with 13 additions and 49 deletions

View File

@ -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;