X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/9a83f860948059b0273b5cc6d9e43fadad3ebfca..715e4f7e3e26595209b5fe8a9ad3e60cce317e5f:/include/wx/list.h diff --git a/include/wx/list.h b/include/wx/list.h index 88913253ec..78e86ee694 100644 --- a/include/wx/list.h +++ b/include/wx/list.h @@ -258,7 +258,7 @@ inline const void *wxListCastElementToVoidPtr(const wxString& str) iterator i = const_cast< liT* >(this)->end(); \ return compatibility_iterator( this, !empty() ? --i : i ); \ } \ - compatibility_iterator Member( elT e ) const \ + bool Member( elT e ) const \ { return Find( e ); } \ compatibility_iterator Nth( int n ) const \ { return Item( n ); } \ @@ -1010,11 +1010,22 @@ private: iterator insert(const iterator& it, const_reference v) \ { \ if ( it == end() ) \ + { \ Append((const_base_reference)v); \ + /* \ + note that this is the new end(), the old one was \ + invalidated by the Append() call, and this is why we \ + can't use the same code as in the normal case below \ + */ \ + iterator itins(end()); \ + return --itins; \ + } \ else \ + { \ Insert(it.m_node, (const_base_reference)v); \ - iterator itprev(it); \ - return itprev--; \ + iterator itins(it); \ + return --itins; \ + } \ } \ void insert(const iterator& it, size_type n, const_reference v) \ { \ @@ -1179,12 +1190,8 @@ public: // compatibility methods void Sort(wxSortCompareFunction compfunc) { wxListBase::Sort(compfunc); } -#endif - -#if wxUSE_STL -#else - wxNode *Member(wxObject *object) const { return (wxNode *)Find(object); } -#endif + bool Member(wxObject *object) const { return Find(object) != NULL; } +#endif // !wxUSE_STL }; #if !wxUSE_STL