[cfe-commits] [libcxx] r136547 - /libcxx/trunk/include/ext/slist
Eli Friedman
eli.friedman at gmail.com
Fri Jul 29 17:52:37 PDT 2011
On Fri, Jul 29, 2011 at 5:47 PM, Sean Hunt <scshunt at csclub.uwaterloo.ca> wrote:
> Author: coppro
> Date: Fri Jul 29 19:47:53 2011
> New Revision: 136547
>
> URL: http://llvm.org/viewvc/llvm-project?rev=136547&view=rev
> Log:
> Add the missing default argument for the allocator and use a cleaner
> implementation of previous().
>
> Modified:
> libcxx/trunk/include/ext/slist
>
> Modified: libcxx/trunk/include/ext/slist
> URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/include/ext/slist?rev=136547&r1=136546&r2=136547&view=diff
> ==============================================================================
> --- libcxx/trunk/include/ext/slist (original)
> +++ libcxx/trunk/include/ext/slist Fri Jul 29 19:47:53 2011
> @@ -21,7 +21,7 @@
>
> using namespace std;
>
> -template <class _Tp, class _Alloc>
> +template <class _Tp, class _Alloc = allocator<_Tp> >
> class _LIBCPP_VISIBLE slist : forward_list<_Tp, _Alloc>
> {
> public:
> @@ -105,12 +105,9 @@
> inline _LIBCPP_INLINE_VISIBILITY
> typename slist<_Tp, _Alloc>::iterator slist<_Tp, _Alloc>::previous(iterator __pos)
> {
> - iterator __a = begin(), __b = end();
> - while (__a != __pos)
> - {
> - __b = __a;
> - ++__a;
> - }
> + iterator __a = begin(), __b = begin();
> + while (++__a != __pos)
> + ++__b;
> return __b;
> }
>
> @@ -118,12 +115,9 @@
> inline _LIBCPP_INLINE_VISIBILITY
> typename slist<_Tp, _Alloc>::const_iterator slist<_Tp, _Alloc>::previous(const_iterator __pos)
> {
> - iterator __a = begin(), __b = end();
> - while (__a != __pos)
> - {
> - __b = __a;
> - ++__a;
> - }
> + iterator __a = begin(), __b = begin();
> + while (++__a != __pos)
> + ++__b;
> return __b;
> }
What if __pos is begin()?
-Eli
More information about the cfe-commits
mailing list