diff options
-rw-r--r-- | src/corelib/tools/qlinkedlist.cpp | 7 | ||||
-rw-r--r-- | src/corelib/tools/qlinkedlist.h | 8 |
2 files changed, 8 insertions, 7 deletions
diff --git a/src/corelib/tools/qlinkedlist.cpp b/src/corelib/tools/qlinkedlist.cpp index 97298dde3d..16105530bf 100644 --- a/src/corelib/tools/qlinkedlist.cpp +++ b/src/corelib/tools/qlinkedlist.cpp @@ -43,9 +43,10 @@ QT_BEGIN_NAMESPACE -QLinkedListData QLinkedListData::shared_null = { - &QLinkedListData::shared_null, &QLinkedListData::shared_null, - Q_BASIC_ATOMIC_INITIALIZER(1), 0, true +const QLinkedListData QLinkedListData::shared_null = { + const_cast<QLinkedListData *>(&QLinkedListData::shared_null), + const_cast<QLinkedListData *>(&QLinkedListData::shared_null), + Q_REFCOUNT_INITIALIZER(-1), 0, true }; /*! \class QLinkedList diff --git a/src/corelib/tools/qlinkedlist.h b/src/corelib/tools/qlinkedlist.h index 9f2834a7d7..bcad210d30 100644 --- a/src/corelib/tools/qlinkedlist.h +++ b/src/corelib/tools/qlinkedlist.h @@ -43,7 +43,7 @@ #define QLINKEDLIST_H #include <QtCore/qiterator.h> -#include <QtCore/qatomic.h> +#include <QtCore/qrefcount.h> #ifndef QT_NO_STL #include <iterator> @@ -59,11 +59,11 @@ QT_MODULE(Core) struct Q_CORE_EXPORT QLinkedListData { QLinkedListData *n, *p; - QBasicAtomicInt ref; + QtPrivate::RefCount ref; int size; uint sharable : 1; - static QLinkedListData shared_null; + static const QLinkedListData shared_null; }; template <typename T> @@ -81,7 +81,7 @@ class QLinkedList union { QLinkedListData *d; QLinkedListNode<T> *e; }; public: - inline QLinkedList() : d(&QLinkedListData::shared_null) { d->ref.ref(); } + inline QLinkedList() : d(const_cast<QLinkedListData *>(&QLinkedListData::shared_null)) { } inline QLinkedList(const QLinkedList<T> &l) : d(l.d) { d->ref.ref(); if (!d->sharable) detach(); } ~QLinkedList(); QLinkedList<T> &operator=(const QLinkedList<T> &); |