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()