QByteArray::number/setNum(double): Reverse dependency
Currently number(double) creates a QByteArray-instance and calls setNum(double). setNum(double) creates a QByteArray-instance and copy-assigns it to itself. By making setNum(double) call number(double) we can cut one creation from numbers(double)'s path, and making setNum no worse than it was. The other pairs of setNum/number are left alone as they don't have this issue. Change-Id: Ib611ebc78db64f74244a56cb8e384e42bc7d1758 Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
This commit is contained in:
parent
50f53b9022
commit
e3f10a2760
@ -4002,33 +4002,7 @@ QByteArray &QByteArray::setNum(qulonglong n, int base)
|
||||
|
||||
QByteArray &QByteArray::setNum(double n, char f, int prec)
|
||||
{
|
||||
QLocaleData::DoubleForm form = QLocaleData::DFDecimal;
|
||||
uint flags = QLocaleData::ZeroPadExponent;
|
||||
|
||||
char lower = asciiLower(uchar(f));
|
||||
if (f != lower)
|
||||
flags |= QLocaleData::CapitalEorX;
|
||||
f = lower;
|
||||
|
||||
switch (f) {
|
||||
case 'f':
|
||||
form = QLocaleData::DFDecimal;
|
||||
break;
|
||||
case 'e':
|
||||
form = QLocaleData::DFExponent;
|
||||
break;
|
||||
case 'g':
|
||||
form = QLocaleData::DFSignificantDigits;
|
||||
break;
|
||||
default:
|
||||
#if defined(QT_CHECK_RANGE)
|
||||
qWarning("QByteArray::setNum: Invalid format char '%c'", f);
|
||||
#endif
|
||||
break;
|
||||
}
|
||||
|
||||
*this = QLocaleData::c()->doubleToString(n, prec, form, -1, flags).toUtf8();
|
||||
return *this;
|
||||
return *this = QByteArray::number(n, f, prec);
|
||||
}
|
||||
|
||||
/*!
|
||||
@ -4159,9 +4133,32 @@ QByteArray QByteArray::number(qulonglong n, int base)
|
||||
*/
|
||||
QByteArray QByteArray::number(double n, char f, int prec)
|
||||
{
|
||||
QByteArray s;
|
||||
s.setNum(n, f, prec);
|
||||
return s;
|
||||
QLocaleData::DoubleForm form = QLocaleData::DFDecimal;
|
||||
uint flags = QLocaleData::ZeroPadExponent;
|
||||
|
||||
char lower = asciiLower(uchar(f));
|
||||
if (f != lower)
|
||||
flags |= QLocaleData::CapitalEorX;
|
||||
f = lower;
|
||||
|
||||
switch (f) {
|
||||
case 'f':
|
||||
form = QLocaleData::DFDecimal;
|
||||
break;
|
||||
case 'e':
|
||||
form = QLocaleData::DFExponent;
|
||||
break;
|
||||
case 'g':
|
||||
form = QLocaleData::DFSignificantDigits;
|
||||
break;
|
||||
default:
|
||||
#if defined(QT_CHECK_RANGE)
|
||||
qWarning("QByteArray::setNum: Invalid format char '%c'", f);
|
||||
#endif
|
||||
break;
|
||||
}
|
||||
|
||||
return QLocaleData::c()->doubleToString(n, prec, form, -1, flags).toUtf8();
|
||||
}
|
||||
|
||||
/*!
|
||||
|
Loading…
x
Reference in New Issue
Block a user