diff options
author | Edward Welbourne <edward.welbourne@qt.io> | 2020-09-07 14:46:10 +0200 |
---|---|---|
committer | Edward Welbourne <edward.welbourne@qt.io> | 2020-09-23 17:17:20 +0200 |
commit | 42500dd9ca165e2b5d531d52059cec55267432b6 (patch) | |
tree | 4ce75e1071de430245cca221999cd4f39ae61823 /src | |
parent | e33b0d4bb068873ed54116a540f9a498172d1a79 (diff) |
Add a ValidWhenMask to QDateTimePrivate::StatusFlag
This saves some repetition of verbose status-setting code.
At the same time, save the function that uses it a repeated
getStatus() call hidden inside its getSpec() by inlining getSpec().
Change-Id: I32aee521c1885408f822ecb47ab1ed76f92852a1
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Diffstat (limited to 'src')
-rw-r--r-- | src/corelib/time/qdatetime.cpp | 17 | ||||
-rw-r--r-- | src/corelib/time/qdatetime_p.h | 3 |
2 files changed, 6 insertions, 14 deletions
diff --git a/src/corelib/time/qdatetime.cpp b/src/corelib/time/qdatetime.cpp index 05f0f37ee8..8ee01dde31 100644 --- a/src/corelib/time/qdatetime.cpp +++ b/src/corelib/time/qdatetime.cpp @@ -3839,23 +3839,17 @@ qint64 QDateTime::toSecsSinceEpoch() const */ void QDateTime::setMSecsSinceEpoch(qint64 msecs) { - const auto spec = getSpec(d); auto status = getStatus(d); + const auto spec = extractSpec(status); status &= ~QDateTimePrivate::ValidityMask; switch (spec) { case Qt::UTC: - status = status - | QDateTimePrivate::ValidDate - | QDateTimePrivate::ValidTime - | QDateTimePrivate::ValidDateTime; + status |= QDateTimePrivate::ValidWhenMask; break; case Qt::OffsetFromUTC: msecs = msecs + (d->m_offsetFromUtc * 1000); - status = status - | QDateTimePrivate::ValidDate - | QDateTimePrivate::ValidTime - | QDateTimePrivate::ValidDateTime; + status |= QDateTimePrivate::ValidWhenMask; break; case Qt::TimeZone: Q_ASSERT(!d.isShort()); @@ -3876,10 +3870,7 @@ void QDateTime::setMSecsSinceEpoch(qint64 msecs) d->m_offsetFromUtc = d->m_timeZone.d->standardTimeOffset(msecs); } msecs = msecs + (d->m_offsetFromUtc * 1000); - status = status - | QDateTimePrivate::ValidDate - | QDateTimePrivate::ValidTime - | QDateTimePrivate::ValidDateTime; + status |= QDateTimePrivate::ValidWhenMask; #endif // timezone break; case Qt::LocalTime: { diff --git a/src/corelib/time/qdatetime_p.h b/src/corelib/time/qdatetime_p.h index 2b690841ee..9dcd896d59 100644 --- a/src/corelib/time/qdatetime_p.h +++ b/src/corelib/time/qdatetime_p.h @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2016 The Qt Company Ltd. +** Copyright (C) 2020 The Qt Company Ltd. ** Copyright (C) 2016 Intel Corporation. ** Contact: https://www.qt.io/licensing/ ** @@ -96,6 +96,7 @@ public: ValidDate = 0x02, ValidTime = 0x04, ValidDateTime = 0x08, + ValidWhenMask = ValidDate | ValidTime | ValidDateTime, TimeSpecMask = 0x30, |