From e5e941450f9c08cb0b02c63ff172e970104f3b0d Mon Sep 17 00:00:00 2001 From: Jim Xochellis Date: Thu, 5 Jul 2007 03:50:56 +0300 Subject: stl_algo.h (search(_ForwardIterator1, _ForwardIterator1, _ForwardIterator2, _ForwardIterator2)): Simplify general case loop to a for(;;). 2007-07-04 Jim Xochellis * include/bits/stl_algo.h (search(_ForwardIterator1, _ForwardIterator1, _ForwardIterator2, _ForwardIterator2)): Simplify general case loop to a for(;;). (search(_ForwardIterator1, _ForwardIterator1, _ForwardIterator2, _ForwardIterator2, _BinaryPredicate)): Likewise; remove redundant inner loop. From-SVN: r126347 --- libstdc++-v3/ChangeLog | 9 +++++++++ libstdc++-v3/include/bits/stl_algo.h | 14 ++++---------- 2 files changed, 13 insertions(+), 10 deletions(-) (limited to 'libstdc++-v3') diff --git a/libstdc++-v3/ChangeLog b/libstdc++-v3/ChangeLog index e467b5e..8b8af16 100644 --- a/libstdc++-v3/ChangeLog +++ b/libstdc++-v3/ChangeLog @@ -1,3 +1,12 @@ +2007-07-04 Jim Xochellis + + * include/bits/stl_algo.h (search(_ForwardIterator1, + _ForwardIterator1, _ForwardIterator2, _ForwardIterator2)): Simplify + general case loop to a for(;;). + (search(_ForwardIterator1, _ForwardIterator1, _ForwardIterator2, + _ForwardIterator2, _BinaryPredicate)): Likewise; remove redundant + inner loop. + 2007-07-03 Paolo Carlini PR libstdc++/31518 diff --git a/libstdc++-v3/include/bits/stl_algo.h b/libstdc++-v3/include/bits/stl_algo.h index 96b6602..2befdb2b 100644 --- a/libstdc++-v3/include/bits/stl_algo.h +++ b/libstdc++-v3/include/bits/stl_algo.h @@ -639,7 +639,7 @@ _GLIBCXX_BEGIN_NAMESPACE(std) __p1 = __first2; ++__p1; _ForwardIterator1 __current = __first1; - while (__first1 != __last1) + for (;;) { __first1 = std::find(__first1, __last1, *__first2); if (__first1 == __last1) @@ -718,16 +718,10 @@ _GLIBCXX_BEGIN_NAMESPACE(std) __p1 = __first2; ++__p1; _ForwardIterator1 __current = __first1; - while (__first1 != __last1) + for (;;) { - while (__first1 != __last1) - { - if (__predicate(*__first1, *__first2)) - break; - ++__first1; - } - while (__first1 != __last1 && - !bool(__predicate(*__first1, *__first2))) + while (__first1 != __last1 + && !bool(__predicate(*__first1, *__first2))) ++__first1; if (__first1 == __last1) return __last1; -- cgit v1.1