mirror of
https://github.com/php/php-src.git
synced 2024-09-21 09:57:23 +00:00
Only use explicit ">" in sorting algo
This commit is contained in:
parent
0bf9326512
commit
b33629f212
@ -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;
|
||||
|
Loading…
Reference in New Issue
Block a user