src/corelib/tools/qscopedpointer.h
changeset 3 41300fa6a67c
parent 0 1918ee327afb
child 4 3b1da2848fc7
--- a/src/corelib/tools/qscopedpointer.h	Tue Jan 26 12:42:25 2010 +0200
+++ b/src/corelib/tools/qscopedpointer.h	Tue Feb 02 00:43:10 2010 +0200
@@ -113,16 +113,6 @@
         return d;
     }
 
-    inline bool operator==(const QScopedPointer<T, Cleanup> &other) const
-    {
-        return d == other.d;
-    }
-
-    inline bool operator!=(const QScopedPointer<T, Cleanup> &other) const
-    {
-        return d != other.d;
-    }
-
     inline bool operator!() const
     {
         return !d;
@@ -181,6 +171,18 @@
 };
 
 template <class T, class Cleanup>
+inline bool operator==(const QScopedPointer<T, Cleanup> &lhs, const QScopedPointer<T, Cleanup> &rhs)
+{
+    return lhs.data() == rhs.data();
+}
+
+template <class T, class Cleanup>
+inline bool operator!=(const QScopedPointer<T, Cleanup> &lhs, const QScopedPointer<T, Cleanup> &rhs)
+{
+    return lhs.data() != rhs.data();
+}
+
+template <class T, class Cleanup>
 Q_INLINE_TEMPLATE void qSwap(QScopedPointer<T, Cleanup> &p1, QScopedPointer<T, Cleanup> &p2)
 { p1.swap(p2); }
 
@@ -203,104 +205,10 @@
         return this->d[i];
     }
 
-    inline bool operator==(const QScopedArrayPointer<T, Cleanup> &other) const
-    {
-        return this->d == other.d;
-    }
-
-    inline bool operator!=(const QScopedArrayPointer<T, Cleanup> &other) const
-    {
-        return this->d != other.d;
-    }
-
 private:
     Q_DISABLE_COPY(QScopedArrayPointer)
 };
 
-/* Internal helper class - exposes the data through data_ptr (legacy from QShared).
-   Required for some internal Qt classes, do not use otherwise. */
-template <typename T, typename Cleanup = QScopedPointerDeleter<T> >
-class QCustomScopedPointer : public QScopedPointer<T, Cleanup>
-{
-public:
-    explicit inline QCustomScopedPointer(T *p = 0)
-        : QScopedPointer<T, Cleanup>(p)
-    {
-    }
-
-    inline T *&data_ptr()
-    {
-        return this->d;
-    }
-
-    inline bool operator==(const QCustomScopedPointer<T, Cleanup> &other) const
-    {
-        return this->d == other.d;
-    }
-
-    inline bool operator!=(const QCustomScopedPointer<T, Cleanup> &other) const
-    {
-        return this->d != other.d;
-    }
-
-private:
-    Q_DISABLE_COPY(QCustomScopedPointer)
-};
-
-/* Internal helper class - a handler for QShared* classes, to be used in QCustomScopedPointer */
-template <typename T>
-class QScopedPointerSharedDeleter
-{
-public:
-    static inline void cleanup(T *d)
-    {
-        if (d && !d->ref.deref())
-            delete d;
-    }
-};
-
-/* Internal.
-   This class is basically a scoped pointer pointing to a ref-counted object
- */
-template <typename T>
-class QScopedSharedPointer : public QCustomScopedPointer<T, QScopedPointerSharedDeleter<T> >
-{
-public:
-    explicit inline QScopedSharedPointer(T *p = 0)
-        : QCustomScopedPointer<T, QScopedPointerSharedDeleter<T> >(p)
-    {
-    }
-
-    inline void detach()
-    {
-        qAtomicDetach(this->d);
-    }
-
-    inline void assign(T *other)
-    {
-        if (this->d == other)
-            return;
-        if (other)
-            other->ref.ref();
-        T *oldD = this->d;
-        this->d = other;
-        QScopedPointerSharedDeleter<T>::cleanup(oldD);
-    }
-
-    inline bool operator==(const QScopedSharedPointer<T> &other) const
-    {
-        return this->d == other.d;
-    }
-
-    inline bool operator!=(const QScopedSharedPointer<T> &other) const
-    {
-        return this->d != other.d;
-    }
-
-private:
-    Q_DISABLE_COPY(QScopedSharedPointer)
-};
-
 QT_END_NAMESPACE
 QT_END_HEADER