diff options
author | Howard Hinnant <hhinnant@apple.com> | 2011-01-04 19:53:31 +0000 |
---|---|---|
committer | Howard Hinnant <hhinnant@apple.com> | 2011-01-04 19:53:31 +0000 |
commit | 36fd9f96cffba43c75cfd482c1491ef9ad5e89dc (patch) | |
tree | f57730648dd7d8a518ef8494f92cac42a6a70f94 /libcxx/include/__split_buffer | |
parent | e45a2389cef8937ea8de278711f387b625fca7f7 (diff) | |
download | bcm5719-llvm-36fd9f96cffba43c75cfd482c1491ef9ad5e89dc.tar.gz bcm5719-llvm-36fd9f96cffba43c75cfd482c1491ef9ad5e89dc.zip |
Reverting an old optimization that conflicts with the new allocator model, and causes some test casees to compile that shouldn't.
llvm-svn: 122830
Diffstat (limited to 'libcxx/include/__split_buffer')
-rw-r--r-- | libcxx/include/__split_buffer | 39 |
1 files changed, 0 insertions, 39 deletions
diff --git a/libcxx/include/__split_buffer b/libcxx/include/__split_buffer index 718fd88716c..ea9d3d0463e 100644 --- a/libcxx/include/__split_buffer +++ b/libcxx/include/__split_buffer @@ -98,11 +98,7 @@ public: _LIBCPP_INLINE_VISIBILITY void pop_back() {__destruct_at_end(__end_-1);} void __construct_at_end(size_type __n); - void __construct_at_end(size_type __n, false_type); - void __construct_at_end(size_type __n, true_type); void __construct_at_end(size_type __n, const_reference __x); - void __construct_at_end(size_type __n, const_reference __x, false_type); - void __construct_at_end(size_type __n, const_reference __x, true_type); template <class _InputIter> typename enable_if < @@ -192,17 +188,9 @@ __split_buffer<_Tp, _Allocator>::__invariants() const // Precondition: size() + __n <= capacity() // Postcondition: size() == size() + __n template <class _Tp, class _Allocator> -_LIBCPP_INLINE_VISIBILITY inline void __split_buffer<_Tp, _Allocator>::__construct_at_end(size_type __n) { - __construct_at_end(__n, __is_zero_default_constructible<value_type>()); -} - -template <class _Tp, class _Allocator> -void -__split_buffer<_Tp, _Allocator>::__construct_at_end(size_type __n, false_type) -{ __alloc_rr& __a = this->__alloc(); do { @@ -212,15 +200,6 @@ __split_buffer<_Tp, _Allocator>::__construct_at_end(size_type __n, false_type) } while (__n > 0); } -template <class _Tp, class _Allocator> -_LIBCPP_INLINE_VISIBILITY inline -void -__split_buffer<_Tp, _Allocator>::__construct_at_end(size_type __n, true_type) -{ - _STD::memset(this->__end_, 0, __n*sizeof(value_type)); - this->__end_ += __n; -} - // Copy constructs __n objects starting at __end_ from __x // throws if construction throws // Precondition: __n > 0 @@ -228,18 +207,9 @@ __split_buffer<_Tp, _Allocator>::__construct_at_end(size_type __n, true_type) // Postcondition: size() == old size() + __n // Postcondition: [i] == __x for all i in [size() - __n, __n) template <class _Tp, class _Allocator> -_LIBCPP_INLINE_VISIBILITY inline void __split_buffer<_Tp, _Allocator>::__construct_at_end(size_type __n, const_reference __x) { - __construct_at_end(__n, __x, integral_constant<bool, is_trivially_copy_constructible<value_type>::value && - is_trivially_copy_assignable<value_type>::value>()); -} - -template <class _Tp, class _Allocator> -void -__split_buffer<_Tp, _Allocator>::__construct_at_end(size_type __n, const_reference __x, false_type) -{ __alloc_rr& __a = this->__alloc(); do { @@ -250,15 +220,6 @@ __split_buffer<_Tp, _Allocator>::__construct_at_end(size_type __n, const_referen } template <class _Tp, class _Allocator> -_LIBCPP_INLINE_VISIBILITY inline -void -__split_buffer<_Tp, _Allocator>::__construct_at_end(size_type __n, const_reference __x, true_type) -{ - _STD::fill_n(this->__end_, __n, __x); - this->__end_ += __n; -} - -template <class _Tp, class _Allocator> template <class _InputIter> typename enable_if < |