From 42500dd9ca165e2b5d531d52059cec55267432b6 Mon Sep 17 00:00:00 2001 From: Edward Welbourne Date: Mon, 7 Sep 2020 14:46:10 +0200 Subject: [PATCH] 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 --- src/corelib/time/qdatetime.cpp | 17 ++++------------- 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 05f0f37ee83..8ee01dde311 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 2b690841ee5..9dcd896d594 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,