summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorpaolo <paolo@138bc75d-0d04-0410-961f-82ee72b054a4>2003-09-29 19:43:04 +0000
committerpaolo <paolo@138bc75d-0d04-0410-961f-82ee72b054a4>2003-09-29 19:43:04 +0000
commite4eab53c2205b9030fbfa456638330cf4e1b5f2e (patch)
tree7e44604eb0a0fc2eacb8b42ddeb0f0e6df82a7ac
parent6439555eac30fc87785fd82ea2781f0fead0de94 (diff)
downloadppe42-gcc-e4eab53c2205b9030fbfa456638330cf4e1b5f2e.tar.gz
ppe42-gcc-e4eab53c2205b9030fbfa456638330cf4e1b5f2e.zip
2003-09-29 Paolo Carlini <pcarlini@unitus.it>
* include/bits/stl_algo.h (search_n): Improve the previous fix as suggested by Martin. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@71913 138bc75d-0d04-0410-961f-82ee72b054a4
-rw-r--r--libstdc++-v3/ChangeLog5
-rw-r--r--libstdc++-v3/include/bits/stl_algo.h6
2 files changed, 9 insertions, 2 deletions
diff --git a/libstdc++-v3/ChangeLog b/libstdc++-v3/ChangeLog
index 08ce582dc9c..d6713f2d82c 100644
--- a/libstdc++-v3/ChangeLog
+++ b/libstdc++-v3/ChangeLog
@@ -1,5 +1,10 @@
2003-09-29 Paolo Carlini <pcarlini@unitus.it>
+ * include/bits/stl_algo.h (search_n): Improve the previous
+ fix as suggested by Martin.
+
+2003-09-29 Paolo Carlini <pcarlini@unitus.it>
+
PR libstdc++/12296
* include/bits/istream.tcc (peek): Set eofbit if sgetc
returns eof.
diff --git a/libstdc++-v3/include/bits/stl_algo.h b/libstdc++-v3/include/bits/stl_algo.h
index 598eb0f01c9..c92aa3c3543 100644
--- a/libstdc++-v3/include/bits/stl_algo.h
+++ b/libstdc++-v3/include/bits/stl_algo.h
@@ -609,7 +609,8 @@ namespace std
else {
__first = std::find(__first, __last, __val);
while (__first != __last) {
- typename iterator_traits<_ForwardIterator>::difference_type __n = __count - 1;
+ typename iterator_traits<_ForwardIterator>::difference_type __n = __count;
+ --__n;
_ForwardIterator __i = __first;
++__i;
while (__i != __last && __n != 0 && *__i == __val) {
@@ -661,7 +662,8 @@ namespace std
++__first;
}
while (__first != __last) {
- typename iterator_traits<_ForwardIterator>::difference_type __n = __count - 1;
+ typename iterator_traits<_ForwardIterator>::difference_type __n = __count;
+ --__n;
_ForwardIterator __i = __first;
++__i;
while (__i != __last && __n != 0 && __binary_pred(*__i, __val)) {
OpenPOWER on IntegriCloud