summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/corelib/tools/qiterator.h13
-rw-r--r--src/corelib/tools/qiterator.qdoc20
-rw-r--r--src/corelib/tools/qset.h7
-rw-r--r--tests/auto/corelib/tools/collections/tst_collections.cpp92
4 files changed, 7 insertions, 125 deletions
diff --git a/src/corelib/tools/qiterator.h b/src/corelib/tools/qiterator.h
index 3b86edd750..86b78eb522 100644
--- a/src/corelib/tools/qiterator.h
+++ b/src/corelib/tools/qiterator.h
@@ -87,12 +87,9 @@ class QMutable##C##Iterator \
public: \
inline QMutable##C##Iterator(Q##C<T> &container) \
: c(&container) \
- { c->setSharable(false); i = c->begin(); n = c->end(); } \
- inline ~QMutable##C##Iterator() \
- { c->setSharable(true); } \
+ { i = c->begin(); n = c->end(); } \
inline QMutable##C##Iterator &operator=(Q##C<T> &container) \
- { c->setSharable(true); c = &container; c->setSharable(false); \
- i = c->begin(); n = c->end(); return *this; } \
+ { c = &container; i = c->begin(); n = c->end(); return *this; } \
inline void toFront() { i = c->begin(); n = c->end(); } \
inline void toBack() { i = c->end(); n = i; } \
inline bool hasNext() const { return c->constEnd() != const_iterator(i); } \
@@ -160,11 +157,9 @@ class QMutable##C##Iterator \
public: \
inline QMutable##C##Iterator(Q##C<Key,T> &container) \
: c(&container) \
- { c->setSharable(false); i = c->begin(); n = c->end(); } \
- inline ~QMutable##C##Iterator() \
- { c->setSharable(true); } \
+ { i = c->begin(); n = c->end(); } \
inline QMutable##C##Iterator &operator=(Q##C<Key,T> &container) \
- { c->setSharable(true); c = &container; c->setSharable(false); i = c->begin(); n = c->end(); return *this; } \
+ { c = &container; i = c->begin(); n = c->end(); return *this; } \
inline void toFront() { i = c->begin(); n = c->end(); } \
inline void toBack() { i = c->end(); n = c->end(); } \
inline bool hasNext() const { return const_iterator(i) != c->constEnd(); } \
diff --git a/src/corelib/tools/qiterator.qdoc b/src/corelib/tools/qiterator.qdoc
index 1ae9c58daa..f140af152d 100644
--- a/src/corelib/tools/qiterator.qdoc
+++ b/src/corelib/tools/qiterator.qdoc
@@ -501,17 +501,6 @@
\sa operator=()
*/
-/*!
- \fn QMutableListIterator::~QMutableListIterator()
- \fn QMutableLinkedListIterator::~QMutableLinkedListIterator()
- \fn QMutableVectorIterator::~QMutableVectorIterator()
- \fn QMutableSetIterator::~QMutableSetIterator()
-
- Destroys the iterator.
-
- \sa operator=()
-*/
-
/*! \fn QMutableListIterator &QMutableListIterator::operator=(QList<T> &list)
\fn QMutableLinkedListIterator &QMutableLinkedListIterator::operator=(QLinkedList<T> &list)
\fn QListIterator &QListIterator::operator=(const QList<T> &list)
@@ -1121,15 +1110,6 @@
\sa operator=()
*/
-/*!
- \fn QMutableMapIterator::~QMutableMapIterator()
- \fn QMutableHashIterator::~QMutableHashIterator()
-
- Destroys the iterator.
-
- \sa operator=()
-*/
-
/*! \fn QMapIterator &QMapIterator::operator=(const QMap<Key, T> &map)
\fn QMutableMapIterator &QMutableMapIterator::operator=(QMap<Key, T> &map)
diff --git a/src/corelib/tools/qset.h b/src/corelib/tools/qset.h
index 992243def6..9682c97fec 100644
--- a/src/corelib/tools/qset.h
+++ b/src/corelib/tools/qset.h
@@ -356,12 +356,9 @@ class QMutableSetIterator
public:
inline QMutableSetIterator(QSet<T> &container)
: c(&container)
- { c->setSharable(false); i = c->begin(); n = c->end(); }
- inline ~QMutableSetIterator()
- { c->setSharable(true); }
+ { i = c->begin(); n = c->end(); }
inline QMutableSetIterator &operator=(QSet<T> &container)
- { c->setSharable(true); c = &container; c->setSharable(false);
- i = c->begin(); n = c->end(); return *this; }
+ { c = &container; i = c->begin(); n = c->end(); return *this; }
inline void toFront() { i = c->begin(); n = c->end(); }
inline void toBack() { i = c->end(); n = i; }
inline bool hasNext() const { return c->constEnd() != i; }
diff --git a/tests/auto/corelib/tools/collections/tst_collections.cpp b/tests/auto/corelib/tools/collections/tst_collections.cpp
index 94b739aa54..33aa1c4888 100644
--- a/tests/auto/corelib/tools/collections/tst_collections.cpp
+++ b/tests/auto/corelib/tools/collections/tst_collections.cpp
@@ -2437,8 +2437,7 @@ void testContainer()
}
/*
- Verify that the 'sharable' flag is true while no mutable
- iterator is active.
+ Verify that the 'sharable' flag is true in populated containers.
*/
{
Container c1;
@@ -2453,95 +2452,6 @@ void testContainer()
QVERIFY(!c2.isDetached());
}
- /*
- Verify that the 'sharable' flag is set to false by the
- mutable iterator.
- */
- {
- Container c1;
- populate(c1);
- QVERIFY(c1.size() == 4);
- QVERIFY(c1.isDetached());
-
- ContainerMutableIterator i(c1);
- i.next();
-
- Container c2 = c1;
- QVERIFY(c1.size() == 4);
- QVERIFY(c2.size() == 4);
- QVERIFY(c1.isDetached());
- QVERIFY(c2.isDetached());
-
- i.remove();
- QVERIFY(c1.size() == 3);
- QVERIFY(c2.size() == 4);
- }
-
- /*
- Verify that the 'sharable' flag is reset to true by the
- mutable iterator's destructor.
- */
- {
- Container c1;
- populate(c1);
- QVERIFY(c1.size() == 4);
- QVERIFY(c1.isDetached());
-
- {
- ContainerMutableIterator i(c1);
- i.next();
- }
-
- Container c2 = c1;
- QVERIFY(c1.size() == 4);
- QVERIFY(c2.size() == 4);
- QVERIFY(!c1.isDetached());
- QVERIFY(!c2.isDetached());
- }
-
- /*
- Verify that the 'sharable' flag only affects the original
- object, not the copies.
- */
- {
- Container c1;
- populate(c1);
- QVERIFY(c1.size() == 4);
- QVERIFY(c1.isDetached());
-
- Container c2 = c1;
- QVERIFY(isSharable(c2));
-
- ContainerMutableIterator i(c1);
- QVERIFY(!isSharable(c1));
- QVERIFY(isSharable(c2));
-
- Container c3 = c1;
- QVERIFY(!isSharable(c1));
- QVERIFY(isSharable(c2));
- QVERIFY(isSharable(c3));
- QVERIFY(c1.isDetached());
- QVERIFY(c2.isDetached());
- QVERIFY(c3.isDetached());
-
- Container c4;
- c4 = c1;
- QVERIFY(!isSharable(c1));
- QVERIFY(isSharable(c2));
- QVERIFY(isSharable(c4));
- QVERIFY(c1.isDetached());
- QVERIFY(c2.isDetached());
- QVERIFY(c4.isDetached());
-
- c3 = c2;
- QVERIFY(!isSharable(c1));
- QVERIFY(isSharable(c2));
- QVERIFY(isSharable(c3));
- QVERIFY(c1.isDetached());
- QVERIFY(!c2.isDetached());
- QVERIFY(!c3.isDetached());
- }
-
/* test that the move operators work properly */
{
Container c1 = Container(newInstance<Container>());