X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/4f47a8d0c680404c5a7f05c11c8d9fa5a6c9ade7..ca44dbde5f44e358fba98c24adf792a97f7db19c:/include/wx/list.h diff --git a/include/wx/list.h b/include/wx/list.h index b88449f12f..7bfeb79f63 100644 --- a/include/wx/list.h +++ b/include/wx/list.h @@ -275,7 +275,7 @@ inline const void *wxListCastElementToVoidPtr(const wxString& str) push_front( e ); \ return compatibility_iterator( this, begin() ); \ } \ - compatibility_iterator Insert( compatibility_iterator & i, elT e ) \ + compatibility_iterator Insert(const compatibility_iterator & i, elT e)\ { \ return compatibility_iterator( this, insert( i.m_iter, e ) ); \ } \ @@ -457,7 +457,7 @@ protected: virtual void DeleteData() { } public: // for wxList::iterator - void** GetDataPtr() const { return &(wx_const_cast(wxNodeBase*, this)->m_data); } + void** GetDataPtr() const { return &(const_cast(this)->m_data); } private: // optional key stuff wxListKeyValue m_key; @@ -1005,18 +1005,22 @@ private: for(size_type i = 0; i < n; ++i) \ Append((const_base_reference)v); \ } \ - iterator insert(const iterator& it, const_reference v = value_type())\ + iterator insert(const iterator& it, const_reference v) \ { \ - Insert(it.m_node, (const_base_reference)v); \ + if ( it == end() ) \ + Append((const_base_reference)v); \ + else \ + Insert(it.m_node, (const_base_reference)v); \ iterator itprev(it); \ return itprev--; \ } \ - void insert(const iterator& it, size_type n, const_reference v = value_type())\ + 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); \ } \ - void insert(const iterator& it, const_iterator first, const const_iterator& last)\ + void insert(const iterator& it, \ + const_iterator first, const const_iterator& last) \ { \ for(; first != last; ++first) \ Insert(it.m_node, (const_base_reference)*first); \