diff options
Diffstat (limited to 'src/corelib/time')
-rw-r--r-- | src/corelib/time/qdatetime.cpp | 1 | ||||
-rw-r--r-- | src/corelib/time/qdatetime.h | 5 |
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; |