Construct QTimeZone::OffsetData by brace-initialization

It saves exercising its default constructor, which doesn't initialize
all members, and makes for terser code. Because the type is public, we
can't delete its constructor to force always brace-initializing. Since
the default values we'd want to NSDMI it to require <limits>, or
access to QTZP, it seemed better to just leave its default
initialization alone and just never exercise it.

Task-number: QTBUG-122619
Change-Id: I58d588d90080cf2f48eef2ef4b733b27bb4fba37
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Reviewed-by: Øystein Heskestad <oystein.heskestad@qt.io>
bb10
Edward Welbourne 2024-04-10 16:51:11 +02:00
parent fccf6cfdd2
commit 45639088d3
1 changed files with 9 additions and 15 deletions

View File

@ -588,25 +588,19 @@ void QTimeZonePrivate::serialize(QDataStream &ds) const
QTimeZone::OffsetData QTimeZonePrivate::invalidOffsetData()
{
QTimeZone::OffsetData offsetData;
offsetData.atUtc = QDateTime();
offsetData.offsetFromUtc = invalidSeconds();
offsetData.standardTimeOffset = invalidSeconds();
offsetData.daylightTimeOffset = invalidSeconds();
return offsetData;
return { QString(), QDateTime(),
invalidSeconds(), invalidSeconds(), invalidSeconds() };
}
QTimeZone::OffsetData QTimeZonePrivate::toOffsetData(const QTimeZonePrivate::Data &data)
{
QTimeZone::OffsetData offsetData = invalidOffsetData();
if (data.atMSecsSinceEpoch != invalidMSecs()) {
offsetData.atUtc = QDateTime::fromMSecsSinceEpoch(data.atMSecsSinceEpoch, QTimeZone::UTC);
offsetData.offsetFromUtc = data.offsetFromUtc;
offsetData.standardTimeOffset = data.standardTimeOffset;
offsetData.daylightTimeOffset = data.daylightTimeOffset;
offsetData.abbreviation = data.abbreviation;
}
return offsetData;
if (data.atMSecsSinceEpoch == invalidMSecs())
return invalidOffsetData();
return {
data.abbreviation,
QDateTime::fromMSecsSinceEpoch(data.atMSecsSinceEpoch, QTimeZone::UTC),
data.offsetFromUtc, data.standardTimeOffset, data.daylightTimeOffset };
}
// Is the format of the ID valid ?