summaryrefslogtreecommitdiffstats
path: root/src/corelib/time
diff options
context:
space:
mode:
Diffstat (limited to 'src/corelib/time')
-rw-r--r--src/corelib/time/qdatetime.cpp1
-rw-r--r--src/corelib/time/qdatetime.h5
2 files changed, 5 insertions, 1 deletions
diff --git a/src/corelib/time/qdatetime.cpp b/src/corelib/time/qdatetime.cpp
index 6bf29bc0d6..9e58382aef 100644
--- a/src/corelib/time/qdatetime.cpp
+++ b/src/corelib/time/qdatetime.cpp
@@ -3618,6 +3618,7 @@ QDateTime::QDateTime() noexcept
static_assert(sizeof(ShortData) == sizeof(qint64));
static_assert(sizeof(Data) == sizeof(qint64));
#endif
+ static_assert(sizeof(ShortData) >= sizeof(void*), "oops, Data::swap() is broken!");
}
/*!
diff --git a/src/corelib/time/qdatetime.h b/src/corelib/time/qdatetime.h
index 80227afde2..c1c67398a3 100644
--- a/src/corelib/time/qdatetime.h
+++ b/src/corelib/time/qdatetime.h
@@ -267,6 +267,9 @@ class Q_CORE_EXPORT QDateTime
Data &operator=(const Data &other);
~Data();
+ void swap(Data &other) noexcept
+ { std::swap(data, other.data); }
+
bool isShort() const;
void detach();
@@ -290,7 +293,7 @@ public:
QT_MOVE_ASSIGNMENT_OPERATOR_IMPL_VIA_PURE_SWAP(QDateTime)
QDateTime &operator=(const QDateTime &other) noexcept;
- void swap(QDateTime &other) noexcept { qSwap(d.d, other.d.d); }
+ void swap(QDateTime &other) noexcept { d.swap(other.d); }
bool isNull() const;
bool isValid() const;