QDate(Time)?::fromString(): do not use QCalendar as a default argument
QCalendar is not a trivial type, so using it as a default argument in various fromString() overloads introduces an extra overhead. In this case the function actually always needs a QCalendar object, and a default-constructed QCalendar reproduces a valid gregorian calendar. But getting rid of a default argument still gives us the benefit of constructing the object only in the library, not at every call site. So, split each overload into two - with and without a QCalendar argument. Amends 41f84f3ddb780ec751e3fc706dd242fc4a99de7a Found in 6.7 API review Pick-to: 6.7 Change-Id: I7329276cbda0e5471dc5348af92fc8c9ca4e0738 Reviewed-by: Thiago Macieira <thiago.macieira@intel.com> Reviewed-by: Marc Mutz <marc.mutz@qt.io>
This commit is contained in:
parent
d4d3d6fdba
commit
59db912e86
@ -1844,6 +1844,33 @@ QDate QDate::fromString(const QString &string, QStringView format, int baseYear,
|
||||
\overload
|
||||
\since 6.7
|
||||
*/
|
||||
|
||||
/*!
|
||||
\fn QDate QDate::fromString(QStringView string, QStringView format, int baseYear)
|
||||
\overload
|
||||
\since 6.7
|
||||
|
||||
Uses a default-constructed QCalendar.
|
||||
*/
|
||||
|
||||
/*!
|
||||
\overload
|
||||
\since 6.7
|
||||
|
||||
Uses a default-constructed QCalendar.
|
||||
*/
|
||||
QDate QDate::fromString(const QString &string, QStringView format, int baseYear)
|
||||
{
|
||||
return fromString(string, format, baseYear, QCalendar());
|
||||
}
|
||||
|
||||
/*!
|
||||
\fn QDate QDate::fromString(const QString &string, const QString &format, int baseYear)
|
||||
\overload
|
||||
\since 6.7
|
||||
|
||||
Uses a default-constructed QCalendar.
|
||||
*/
|
||||
#endif // datestring
|
||||
|
||||
/*!
|
||||
@ -5848,6 +5875,33 @@ QDateTime QDateTime::fromString(const QString &string, QStringView format, int b
|
||||
\overload
|
||||
\since 6.7
|
||||
*/
|
||||
|
||||
/*!
|
||||
\fn QDateTime QDateTime::fromString(QStringView string, QStringView format, int baseYear)
|
||||
\overload
|
||||
\since 6.7
|
||||
|
||||
Uses a default-constructed QCalendar.
|
||||
*/
|
||||
|
||||
/*!
|
||||
\overload
|
||||
\since 6.7
|
||||
|
||||
Uses a default-constructed QCalendar.
|
||||
*/
|
||||
QDateTime QDateTime::fromString(const QString &string, QStringView format, int baseYear)
|
||||
{
|
||||
return fromString(string, format, baseYear, QCalendar());
|
||||
}
|
||||
|
||||
/*!
|
||||
\fn QDateTime QDateTime::fromString(const QString &string, const QString &format, int baseYear)
|
||||
\overload
|
||||
\since 6.7
|
||||
|
||||
Uses a default-constructed QCalendar.
|
||||
*/
|
||||
#endif // datestring
|
||||
|
||||
/*****************************************************************************
|
||||
|
@ -144,15 +144,20 @@ public:
|
||||
// Overriding base year is likely more common than overriding calendar (and
|
||||
// likely to get more so, as the legacy base drops ever further behind us).
|
||||
static QDate fromString(QStringView string, QStringView format,
|
||||
int baseYear = QLocale::DefaultTwoDigitBaseYear,
|
||||
QCalendar cal = QCalendar())
|
||||
int baseYear = QLocale::DefaultTwoDigitBaseYear)
|
||||
{ return fromString(string.toString(), format, baseYear); }
|
||||
static QDate fromString(QStringView string, QStringView format,
|
||||
int baseYear, QCalendar cal)
|
||||
{ return fromString(string.toString(), format, baseYear, cal); }
|
||||
static QDate fromString(const QString &string, QStringView format,
|
||||
int baseYear = QLocale::DefaultTwoDigitBaseYear,
|
||||
QCalendar cal = QCalendar());
|
||||
int baseYear = QLocale::DefaultTwoDigitBaseYear);
|
||||
static QDate fromString(const QString &string, QStringView format,
|
||||
int baseYear, QCalendar cal);
|
||||
static QDate fromString(const QString &string, const QString &format,
|
||||
int baseYear = QLocale::DefaultTwoDigitBaseYear,
|
||||
QCalendar cal = QCalendar())
|
||||
int baseYear = QLocale::DefaultTwoDigitBaseYear)
|
||||
{ return fromString(string, qToStringViewIgnoringNull(format), baseYear); }
|
||||
static QDate fromString(const QString &string, const QString &format,
|
||||
int baseYear, QCalendar cal)
|
||||
{ return fromString(string, qToStringViewIgnoringNull(format), baseYear, cal); }
|
||||
#endif
|
||||
static bool isValid(int y, int m, int d);
|
||||
@ -451,15 +456,20 @@ public:
|
||||
// Overriding base year is likely more common than overriding calendar (and
|
||||
// likely to get more so, as the legacy base drops ever further behind us).
|
||||
static QDateTime fromString(QStringView string, QStringView format,
|
||||
int baseYear = QLocale::DefaultTwoDigitBaseYear,
|
||||
QCalendar cal = QCalendar())
|
||||
int baseYear = QLocale::DefaultTwoDigitBaseYear)
|
||||
{ return fromString(string.toString(), format, baseYear); }
|
||||
static QDateTime fromString(QStringView string, QStringView format,
|
||||
int baseYear, QCalendar cal)
|
||||
{ return fromString(string.toString(), format, baseYear, cal); }
|
||||
static QDateTime fromString(const QString &string, QStringView format,
|
||||
int baseYear = QLocale::DefaultTwoDigitBaseYear,
|
||||
QCalendar cal = QCalendar());
|
||||
int baseYear = QLocale::DefaultTwoDigitBaseYear);
|
||||
static QDateTime fromString(const QString &string, QStringView format,
|
||||
int baseYear, QCalendar cal);
|
||||
static QDateTime fromString(const QString &string, const QString &format,
|
||||
int baseYear = QLocale::DefaultTwoDigitBaseYear,
|
||||
QCalendar cal = QCalendar())
|
||||
int baseYear = QLocale::DefaultTwoDigitBaseYear)
|
||||
{ return fromString(string, qToStringViewIgnoringNull(format), baseYear); }
|
||||
static QDateTime fromString(const QString &string, const QString &format,
|
||||
int baseYear, QCalendar cal)
|
||||
{ return fromString(string, qToStringViewIgnoringNull(format), baseYear, cal); }
|
||||
#endif
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user