From c35b55f076baf8cfd62549e8e386bfd95853de69 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Thorbj=C3=B8rn=20Martsum?= Date: Mon, 17 Jun 2013 11:35:46 +0200 Subject: QLinkedList - fix insert with iterator when the list is shared. Before a call to erase on a shared instance would imply that the item was inserted into the shared data (i.e all instances) Change-Id: I655ccf04b1ad9bf82e6bfade58929538fa7df000 Reviewed-by: Thiago Macieira --- .../corelib/tools/qlinkedlist/tst_qlinkedlist.cpp | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) (limited to 'tests/auto/corelib/tools/qlinkedlist/tst_qlinkedlist.cpp') diff --git a/tests/auto/corelib/tools/qlinkedlist/tst_qlinkedlist.cpp b/tests/auto/corelib/tools/qlinkedlist/tst_qlinkedlist.cpp index b1a9946a0f..3fa78f5f13 100644 --- a/tests/auto/corelib/tools/qlinkedlist/tst_qlinkedlist.cpp +++ b/tests/auto/corelib/tools/qlinkedlist/tst_qlinkedlist.cpp @@ -47,6 +47,7 @@ class tst_QLinkedList : public QObject Q_OBJECT private slots: void eraseValidIteratorsOnSharedList() const; + void insertWithIteratorsOnSharedList() const; }; void tst_QLinkedList::eraseValidIteratorsOnSharedList() const @@ -73,5 +74,23 @@ void tst_QLinkedList::eraseValidIteratorsOnSharedList() const QCOMPARE(*r, 10); // Ensure that number 2 instance was removed; } +void tst_QLinkedList::insertWithIteratorsOnSharedList() const +{ + QLinkedList a, b; + a.append(5); + a.append(10); + a.append(20); + QLinkedList::iterator i = a.begin(); + ++i; + ++i; + b = a; + + QLinkedList::iterator i2 = a.insert(i, 15); + QCOMPARE(b.size(), 3); + QCOMPARE(a.size(), 4); + --i2; + QCOMPARE(*i2, 10); +} + QTEST_MAIN(tst_QLinkedList) #include "tst_qlinkedlist.moc" -- cgit v1.2.3