summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorEdward Welbourne <edward.welbourne@qt.io>2020-09-07 14:46:10 +0200
committerEdward Welbourne <edward.welbourne@qt.io>2020-09-23 17:17:20 +0200
commit42500dd9ca165e2b5d531d52059cec55267432b6 (patch)
tree4ce75e1071de430245cca221999cd4f39ae61823
parente33b0d4bb068873ed54116a540f9a498172d1a79 (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>
-rw-r--r--src/corelib/time/qdatetime.cpp17
-rw-r--r--src/corelib/time/qdatetime_p.h3
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,