summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorpaolo <paolo@138bc75d-0d04-0410-961f-82ee72b054a4>2006-08-11 10:39:37 +0000
committerpaolo <paolo@138bc75d-0d04-0410-961f-82ee72b054a4>2006-08-11 10:39:37 +0000
commiteedf016898325a97549b655f00e211e35bea49fd (patch)
tree828e8a33403942c4b4c0bc0d11dd5737513b7a71
parent3cea28d762bf7cd8d486d9add64299b8d3a4ee45 (diff)
downloadppe42-gcc-eedf016898325a97549b655f00e211e35bea49fd.tar.gz
ppe42-gcc-eedf016898325a97549b655f00e211e35bea49fd.zip
2006-08-11 Paolo Carlini <pcarlini@suse.de>
* include/bits/stl_bvector.h (__fill_bvector(_Bit_iterator, _Bit_iterator, bool)): New. (fill(_Bit_iterator, _Bit_iterator, const bool&)): Use it. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@116081 138bc75d-0d04-0410-961f-82ee72b054a4
-rw-r--r--libstdc++-v3/ChangeLog6
-rw-r--r--libstdc++-v3/include/bits/stl_bvector.h16
2 files changed, 17 insertions, 5 deletions
diff --git a/libstdc++-v3/ChangeLog b/libstdc++-v3/ChangeLog
index 866147f8e36..6fde3f2b601 100644
--- a/libstdc++-v3/ChangeLog
+++ b/libstdc++-v3/ChangeLog
@@ -1,3 +1,9 @@
+2006-08-11 Paolo Carlini <pcarlini@suse.de>
+
+ * include/bits/stl_bvector.h (__fill_bvector(_Bit_iterator,
+ _Bit_iterator, bool)): New.
+ (fill(_Bit_iterator, _Bit_iterator, const bool&)): Use it.
+
2006-08-10 Paolo Carlini <pcarlini@suse.de>
* include/tr1/random.tcc (gamma_distribution<>::operator()): Fixes
diff --git a/libstdc++-v3/include/bits/stl_bvector.h b/libstdc++-v3/include/bits/stl_bvector.h
index 5d87bc504e8..a48e964815b 100644
--- a/libstdc++-v3/include/bits/stl_bvector.h
+++ b/libstdc++-v3/include/bits/stl_bvector.h
@@ -354,17 +354,23 @@ _GLIBCXX_BEGIN_NESTED_NAMESPACE(std, _GLIBCXX_STD)
{ return __x + __n; }
inline void
+ __fill_bvector(_Bit_iterator __first, _Bit_iterator __last, bool __x)
+ {
+ for (; __first != __last; ++__first)
+ *__first = __x;
+ }
+
+ inline void
fill(_Bit_iterator __first, _Bit_iterator __last, const bool& __x)
{
if (__first._M_p != __last._M_p)
{
- std::__fill<true>::fill(__first._M_p + 1, __last._M_p, __x ? ~0 : 0);
- std::__fill<true>::fill(__first, _Bit_iterator(__first._M_p + 1, 0),
- __x);
- std::__fill<true>::fill(_Bit_iterator(__last._M_p, 0), __last, __x);
+ std::fill(__first._M_p + 1, __last._M_p, __x ? ~0 : 0);
+ __fill_bvector(__first, _Bit_iterator(__first._M_p + 1, 0), __x);
+ __fill_bvector(_Bit_iterator(__last._M_p, 0), __last, __x);
}
else
- std::__fill<true>::fill(__first, __last, __x);
+ __fill_bvector(__first, __last, __x);
}
template<class _Alloc>
OpenPOWER on IntegriCloud