diff options
author | Xinchen Hui <laruence@php.net> | 2015-01-19 03:32:28 -0500 |
---|---|---|
committer | Xinchen Hui <laruence@php.net> | 2015-01-19 03:32:28 -0500 |
commit | b33629f21253b106157e8a3f24b376a4aadd92f0 (patch) | |
tree | fa1f330606524e16842c99cbb303d6a7b76fdcb7 | |
parent | 0bf9326512948f3c44dc33ff1b6b5613649d5761 (diff) | |
download | php-git-b33629f21253b106157e8a3f24b376a4aadd92f0.tar.gz |
Only use explicit ">" in sorting algo
-rw-r--r-- | Zend/zend_sort.c | 19 |
1 files changed, 10 insertions, 9 deletions
diff --git a/Zend/zend_sort.c b/Zend/zend_sort.c index 78ed0ebb5f..cdf19f9d24 100644 --- a/Zend/zend_sort.c +++ b/Zend/zend_sort.c @@ -98,8 +98,8 @@ static inline void zend_sort_2(void *a, void *b, compare_func_t cmp, swap_func_t /* }}} */ static inline void zend_sort_3(void *a, void *b, void *c, compare_func_t cmp, swap_func_t swp) /* {{{ */ { - if (cmp(a, b) <= 0) { - if (cmp(b, c) <= 0) { + if (!(cmp(a, b) > 0)) { + if (!(cmp(b, c) > 0)) { return; } swp(b, c); @@ -108,7 +108,7 @@ static inline void zend_sort_3(void *a, void *b, void *c, compare_func_t cmp, sw } return; } - if (cmp(c, b) <= 0) { + if (!(cmp(c, b) > 0)) { swp(a, c); return; } @@ -178,15 +178,16 @@ ZEND_API void zend_insert_sort(void *base, size_t nmemb, size_t siz, compare_fun char *i, *j, *k; char *start = (char *)base; char *end = start + (nmemb * siz); + size_t siz2= siz + siz; char *sentry = start + (6 * siz); for (i = start + siz; i < sentry; i += siz) { j = i - siz; - if (cmp(j, i) <= 0) { + if (!(cmp(j, i) > 0)) { continue; } while (j != start) { j -= siz; - if (cmp(j, i) <= 0) { + if (!(cmp(j, i) > 0)) { j += siz; break; } @@ -197,14 +198,14 @@ ZEND_API void zend_insert_sort(void *base, size_t nmemb, size_t siz, compare_fun } for (i = sentry; i < end; i += siz) { j = i - siz; - if (cmp(j, i) <= 0) { + if (!(cmp(j, i) > 0)) { continue; } do { - j -= siz * 2; - if (cmp(j, i) <= 0) { + j -= siz2; + if (!(cmp(j, i) > 0)) { j += siz; - if (cmp(j, i) <= 0) { + if (!(cmp(j, i) > 0)) { j += siz; } break; |