|
16 | 16 | #include <__iterator/distance.h> |
17 | 17 | #include <__iterator/iterator_traits.h> |
18 | 18 | #include <__memory/destruct_n.h> |
19 | | -#include <__memory/temporary_buffer.h> |
20 | 19 | #include <__memory/unique_ptr.h> |
| 20 | +#include <__memory/unique_temporary_buffer.h> |
21 | 21 | #include <__utility/move.h> |
22 | 22 | #include <__utility/pair.h> |
23 | 23 | #include <new> |
@@ -132,14 +132,12 @@ __stable_partition_impl(_ForwardIterator __first, _ForwardIterator __last, _Pred |
132 | 132 | // We now have a reduced range [__first, __last) |
133 | 133 | // *__first is known to be false |
134 | 134 | difference_type __len = _IterOps<_AlgPolicy>::distance(__first, __last); |
| 135 | + __unique_temporary_buffer<value_type> __unique_buf; |
135 | 136 | pair<value_type*, ptrdiff_t> __p(0, 0); |
136 | | - unique_ptr<value_type, __return_temporary_buffer> __h; |
137 | 137 | if (__len >= __alloc_limit) { |
138 | | - // TODO: Remove the use of std::get_temporary_buffer |
139 | | - _LIBCPP_SUPPRESS_DEPRECATED_PUSH |
140 | | - __p = std::get_temporary_buffer<value_type>(__len); |
141 | | - _LIBCPP_SUPPRESS_DEPRECATED_POP |
142 | | - __h.reset(__p.first); |
| 138 | + __unique_buf = std::__allocate_unique_temporary_buffer<value_type>(__len); |
| 139 | + __p.first = __unique_buf.get(); |
| 140 | + __p.second = __unique_buf.get_deleter().__count_; |
143 | 141 | } |
144 | 142 | return std::__stable_partition_impl<_AlgPolicy, _Predicate&>( |
145 | 143 | std::move(__first), std::move(__last), __pred, __len, __p, forward_iterator_tag()); |
@@ -272,14 +270,12 @@ _LIBCPP_HIDE_FROM_ABI _BidirectionalIterator __stable_partition_impl( |
272 | 270 | // *__last is known to be true |
273 | 271 | // __len >= 2 |
274 | 272 | difference_type __len = _IterOps<_AlgPolicy>::distance(__first, __last) + 1; |
| 273 | + __unique_temporary_buffer<value_type> __unique_buf; |
275 | 274 | pair<value_type*, ptrdiff_t> __p(0, 0); |
276 | | - unique_ptr<value_type, __return_temporary_buffer> __h; |
277 | 275 | if (__len >= __alloc_limit) { |
278 | | - // TODO: Remove the use of std::get_temporary_buffer |
279 | | - _LIBCPP_SUPPRESS_DEPRECATED_PUSH |
280 | | - __p = std::get_temporary_buffer<value_type>(__len); |
281 | | - _LIBCPP_SUPPRESS_DEPRECATED_POP |
282 | | - __h.reset(__p.first); |
| 276 | + __unique_buf = std::__allocate_unique_temporary_buffer<value_type>(__len); |
| 277 | + __p.first = __unique_buf.get(); |
| 278 | + __p.second = __unique_buf.get_deleter().__count_; |
283 | 279 | } |
284 | 280 | return std::__stable_partition_impl<_AlgPolicy, _Predicate&>( |
285 | 281 | std::move(__first), std::move(__last), __pred, __len, __p, bidirectional_iterator_tag()); |
|
0 commit comments