diff options
| author | paolo <paolo@138bc75d-0d04-0410-961f-82ee72b054a4> | 2003-09-29 19:43:04 +0000 |
|---|---|---|
| committer | paolo <paolo@138bc75d-0d04-0410-961f-82ee72b054a4> | 2003-09-29 19:43:04 +0000 |
| commit | e4eab53c2205b9030fbfa456638330cf4e1b5f2e (patch) | |
| tree | 7e44604eb0a0fc2eacb8b42ddeb0f0e6df82a7ac | |
| parent | 6439555eac30fc87785fd82ea2781f0fead0de94 (diff) | |
| download | ppe42-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/ChangeLog | 5 | ||||
| -rw-r--r-- | libstdc++-v3/include/bits/stl_algo.h | 6 |
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)) { |

