From ab13878f7b266ca4e4b36242c033097d832de1f3 Mon Sep 17 00:00:00 2001 From: Vadim Zeitlin Date: Sat, 7 Feb 2009 23:46:53 +0000 Subject: [PATCH] fix other insert() overloads to work when inserting at the end of the list, continuation of r56299 (see #10103) git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@58742 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775 --- include/wx/list.h | 4 ++-- tests/lists/lists.cpp | 11 +++++++++++ 2 files changed, 13 insertions(+), 2 deletions(-) diff --git a/include/wx/list.h b/include/wx/list.h index 3a261249ee..51ecad7972 100644 --- a/include/wx/list.h +++ b/include/wx/list.h @@ -1019,13 +1019,13 @@ private: void insert(const iterator& it, size_type n, const_reference v) \ { \ for(size_type i = 0; i < n; ++i) \ - Insert(it.m_node, (const_base_reference)v); \ + insert(it, v); \ } \ void insert(const iterator& it, \ const_iterator first, const const_iterator& last) \ { \ for(; first != last; ++first) \ - Insert(it.m_node, (const_base_reference)*first); \ + insert(it, *first); \ } \ iterator erase(const iterator& it) \ { \ diff --git a/tests/lists/lists.cpp b/tests/lists/lists.cpp index ef259ba552..907e87c70a 100644 --- a/tests/lists/lists.cpp +++ b/tests/lists/lists.cpp @@ -161,6 +161,17 @@ void ListsTestCase::wxStdListTest() it = list1.erase(++it, list1.end()); CPPUNIT_ASSERT_EQUAL( 1, list1.size() ); CPPUNIT_ASSERT( it == list1.end() ); + + wxListInt list2; + list2.push_back((int *)3); + list2.push_back((int *)4); + list1.insert(list1.begin(), list2.begin(), list2.end()); + CPPUNIT_ASSERT_EQUAL( 3, list1.size() ); + CPPUNIT_ASSERT_EQUAL( (int *)3, list1.front() ); + + list1.insert(list1.end(), list2.begin(), list2.end()); + CPPUNIT_ASSERT_EQUAL( 5, list1.size() ); + CPPUNIT_ASSERT_EQUAL( (int *)4, list1.back() ); } void ListsTestCase::wxListCtorTest() -- 2.47.2