Fix return value of wxList::insert() in non-STL builds.
The returned value was the same as the iterator that was passed in which could even be invalid when appending. Fix the wrong use of postfix decrement instead of prefix one and handle the case of appending correctly. Closes #11808. git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@63943 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
@@ -152,11 +152,20 @@ void ListsTestCase::wxStdListTest()
|
||||
list1.clear();
|
||||
CPPUNIT_ASSERT( list1.empty() );
|
||||
|
||||
list1.insert(list1.end(), (int *)1);
|
||||
list1.insert(list1.end(), (int *)2);
|
||||
it = list1.insert(list1.end(), (int *)1);
|
||||
CPPUNIT_ASSERT_EQUAL( (int *)1, *it );
|
||||
CPPUNIT_ASSERT( it == list1.begin() );
|
||||
CPPUNIT_ASSERT_EQUAL( (int *)1, list1.front() );
|
||||
|
||||
it = list1.insert(list1.end(), (int *)2);
|
||||
CPPUNIT_ASSERT_EQUAL( (int *)2, *it );
|
||||
CPPUNIT_ASSERT( ++it == list1.end() );
|
||||
CPPUNIT_ASSERT_EQUAL( (int *)2, list1.back() );
|
||||
|
||||
it = list1.begin();
|
||||
wxListInt::iterator it2 = list1.insert(++it, (int *)3);
|
||||
CPPUNIT_ASSERT_EQUAL( (int *)3, *it2 );
|
||||
|
||||
it = list1.begin();
|
||||
it = list1.erase(++it, list1.end());
|
||||
CPPUNIT_ASSERT_EQUAL( 1, list1.size() );
|
||||
|
Reference in New Issue
Block a user