OSDN Git Service

2007-07-04 Jim Xochellis <jimxoch@yahoo.gr>
authorpaolo <paolo@138bc75d-0d04-0410-961f-82ee72b054a4>
Thu, 5 Jul 2007 00:50:56 +0000 (00:50 +0000)
committerpaolo <paolo@138bc75d-0d04-0410-961f-82ee72b054a4>
Thu, 5 Jul 2007 00:50:56 +0000 (00:50 +0000)
* 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.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@126347 138bc75d-0d04-0410-961f-82ee72b054a4

libstdc++-v3/ChangeLog
libstdc++-v3/include/bits/stl_algo.h

index e467b5e..8b8af16 100644 (file)
@@ -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
index 96b6602..2befdb2 100644 (file)
@@ -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;