From 4d02a6956be69027ca357ef30b835bd1575580ac Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fran=C3=A7ois=20Dumont?= Date: Fri, 3 Aug 2012 19:34:49 +0000 Subject: [PATCH] functions.h (__check_partition_lower_aux): Remove redundant comparison with pivot value. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 2012-08-03 François Dumont * include/debug/functions.h (__check_partition_lower_aux): Remove redundant comparison with pivot value. (__check_partition_upper_aux): Likewise. From-SVN: r190134 --- libstdc++-v3/ChangeLog | 6 ++ libstdc++-v3/include/debug/functions.h | 80 ++++++++++++++++++-------- 2 files changed, 62 insertions(+), 24 deletions(-) diff --git a/libstdc++-v3/ChangeLog b/libstdc++-v3/ChangeLog index 3e94f240208..546bdee6175 100644 --- a/libstdc++-v3/ChangeLog +++ b/libstdc++-v3/ChangeLog @@ -1,3 +1,9 @@ +2012-08-03 François Dumont + + * include/debug/functions.h (__check_partition_lower_aux): Remove + redundant comparison with pivot value. + (__check_partition_upper_aux): Likewise. + 2012-08-03 Ollie Wild Richard Smith diff --git a/libstdc++-v3/include/debug/functions.h b/libstdc++-v3/include/debug/functions.h index b2817d5ef1c..b59309e2185 100644 --- a/libstdc++-v3/include/debug/functions.h +++ b/libstdc++-v3/include/debug/functions.h @@ -354,8 +354,12 @@ namespace __gnu_debug { while (__first != __last && *__first < __value) ++__first; - while (__first != __last && !(*__first < __value)) - ++__first; + if (__first != __last) + { + ++__first; + while (__first != __last && !(*__first < __value)) + ++__first; + } return __first == __last; } @@ -368,8 +372,10 @@ namespace __gnu_debug const _Safe_iterator<_Iterator, _Sequence>& __last, const _Tp& __value, std::random_access_iterator_tag __tag) - { return __check_partitioned_lower_aux(__first.base(), __last.base(), - __value, __tag); } + { + return __check_partitioned_lower_aux(__first.base(), __last.base(), + __value, __tag); + } // _GLIBCXX_RESOLVE_LIB_DEFECTS // 270. Binary search requirements overly strict @@ -378,8 +384,10 @@ namespace __gnu_debug inline bool __check_partitioned_lower(_ForwardIterator __first, _ForwardIterator __last, const _Tp& __value) - { return __check_partitioned_lower_aux(__first, __last, __value, - std::__iterator_category(__first)); } + { + return __check_partitioned_lower_aux(__first, __last, __value, + std::__iterator_category(__first)); + } template inline bool @@ -389,8 +397,12 @@ namespace __gnu_debug { while (__first != __last && !(__value < *__first)) ++__first; - while (__first != __last && __value < *__first) - ++__first; + if (__first != __last) + { + ++__first; + while (__first != __last && __value < *__first) + ++__first; + } return __first == __last; } @@ -403,15 +415,19 @@ namespace __gnu_debug const _Safe_iterator<_Iterator, _Sequence>& __last, const _Tp& __value, std::random_access_iterator_tag __tag) - { return __check_partitioned_upper_aux(__first.base(), __last.base(), - __value, __tag); } + { + return __check_partitioned_upper_aux(__first.base(), __last.base(), + __value, __tag); + } template inline bool __check_partitioned_upper(_ForwardIterator __first, _ForwardIterator __last, const _Tp& __value) - { return __check_partitioned_upper_aux(__first, __last, __value, - std::__iterator_category(__first)); } + { + return __check_partitioned_upper_aux(__first, __last, __value, + std::__iterator_category(__first)); + } template inline bool @@ -422,8 +438,12 @@ namespace __gnu_debug { while (__first != __last && bool(__pred(*__first, __value))) ++__first; - while (__first != __last && !bool(__pred(*__first, __value))) - ++__first; + if (__first != __last) + { + ++__first; + while (__first != __last && !bool(__pred(*__first, __value))) + ++__first; + } return __first == __last; } @@ -437,8 +457,10 @@ namespace __gnu_debug const _Safe_iterator<_Iterator, _Sequence>& __last, const _Tp& __value, _Pred __pred, std::random_access_iterator_tag __tag) - { return __check_partitioned_lower_aux(__first.base(), __last.base(), - __value, __pred, __tag); } + { + return __check_partitioned_lower_aux(__first.base(), __last.base(), + __value, __pred, __tag); + } // Determine if a sequence is partitioned w.r.t. this element. template @@ -446,8 +468,10 @@ namespace __gnu_debug __check_partitioned_lower(_ForwardIterator __first, _ForwardIterator __last, const _Tp& __value, _Pred __pred) - { return __check_partitioned_lower_aux(__first, __last, __value, __pred, - std::__iterator_category(__first)); } + { + return __check_partitioned_lower_aux(__first, __last, __value, __pred, + std::__iterator_category(__first)); + } template inline bool @@ -458,8 +482,12 @@ namespace __gnu_debug { while (__first != __last && !bool(__pred(__value, *__first))) ++__first; - while (__first != __last && bool(__pred(__value, *__first))) - ++__first; + if (__first != __last) + { + ++__first; + while (__first != __last && bool(__pred(__value, *__first))) + ++__first; + } return __first == __last; } @@ -473,16 +501,20 @@ namespace __gnu_debug const _Safe_iterator<_Iterator, _Sequence>& __last, const _Tp& __value, _Pred __pred, std::random_access_iterator_tag __tag) - { return __check_partitioned_upper_aux(__first.base(), __last.base(), - __value, __pred, __tag); } + { + return __check_partitioned_upper_aux(__first.base(), __last.base(), + __value, __pred, __tag); + } template inline bool __check_partitioned_upper(_ForwardIterator __first, _ForwardIterator __last, const _Tp& __value, _Pred __pred) - { return __check_partitioned_upper_aux(__first, __last, __value, __pred, - std::__iterator_category(__first)); } + { + return __check_partitioned_upper_aux(__first, __last, __value, __pred, + std::__iterator_category(__first)); + } // Helper struct to detect random access safe iterators. template