summaryrefslogtreecommitdiffstats
path: root/src/corelib
diff options
context:
space:
mode:
authorThiago Macieira <thiago.macieira@intel.com>2018-03-08 16:26:28 -0800
committerThiago Macieira <thiago.macieira@intel.com>2018-03-18 17:28:26 +0000
commit639ce9e55edce0999061bd323b21d4c39d7265e9 (patch)
treecbc4497c951ab8bd328a3e83d13d440069869f48 /src/corelib
parenta263655f9197e92101d33cb02de99c243531aecf (diff)
Add nullptr comparison to Q{Explicitly,}SharedDataPointer
[ChangeLog][QtCore][QSharedDataPointer] Added operator== for nullptr. [ChangeLog][QtCore][QExplicitlySharedDataPointer] Added operator== for nullptr. Task-number: QTBUG-66635 Task-number: QTBUG-66946 Change-Id: I72f5230ad59948f784eafffd151a18e34384d844 Reviewed-by: Olivier Goffart (Woboq GmbH) <ogoffart@woboq.com>
Diffstat (limited to 'src/corelib')
-rw-r--r--src/corelib/tools/qshareddata.h24
1 files changed, 24 insertions, 0 deletions
diff --git a/src/corelib/tools/qshareddata.h b/src/corelib/tools/qshareddata.h
index dbf0907a0f..f5572f3a00 100644
--- a/src/corelib/tools/qshareddata.h
+++ b/src/corelib/tools/qshareddata.h
@@ -132,6 +132,18 @@ private:
T *d;
};
+template <class T> inline bool operator==(std::nullptr_t p1, const QSharedDataPointer<T> &p2)
+{
+ Q_UNUSED(p1);
+ return !p2;
+}
+
+template <class T> inline bool operator==(const QSharedDataPointer<T> &p1, std::nullptr_t p2)
+{
+ Q_UNUSED(p2);
+ return !p1;
+}
+
template <class T> class QExplicitlySharedDataPointer
{
public:
@@ -263,6 +275,18 @@ Q_INLINE_TEMPLATE QExplicitlySharedDataPointer<T>::QExplicitlySharedDataPointer(
: d(adata)
{ if (d) d->ref.ref(); }
+template <class T> inline bool operator==(std::nullptr_t p1, const QExplicitlySharedDataPointer<T> &p2)
+{
+ Q_UNUSED(p1);
+ return !p2;
+}
+
+template <class T> inline bool operator==(const QExplicitlySharedDataPointer<T> &p1, std::nullptr_t p2)
+{
+ Q_UNUSED(p2);
+ return !p1;
+}
+
template <class T>
Q_INLINE_TEMPLATE void qSwap(QSharedDataPointer<T> &p1, QSharedDataPointer<T> &p2)
{ p1.swap(p2); }