aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--libstdc++-v3/ChangeLog9
-rw-r--r--libstdc++-v3/include/bits/stl_algo.h14
2 files changed, 13 insertions, 10 deletions
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 <jimxoch@yahoo.gr>
+
+ * 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 <pcarlini@suse.de>
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;