summaryrefslogtreecommitdiff
path: root/Zend/zend_sort.c
diff options
context:
space:
mode:
authorNikita Popov <nikita.ppv@gmail.com>2020-05-12 16:57:53 +0200
committerNikita Popov <nikita.ppv@gmail.com>2020-05-12 16:57:53 +0200
commitf07fbfb8a9129b5031201936d3e5c0e53445b28e (patch)
tree794f3bae082c478761d0bbddcc0af0f9a38e7cc0 /Zend/zend_sort.c
parent125682f13a98a439d287c0fb6d9c0ab6ed6b4f7e (diff)
downloadphp-git-f07fbfb8a9129b5031201936d3e5c0e53445b28e.tar.gz
Remove zend_qsort
This has been superseded by zend_sort and is no longer used.
Diffstat (limited to 'Zend/zend_sort.c')
-rw-r--r--Zend/zend_sort.c67
1 files changed, 0 insertions, 67 deletions
diff --git a/Zend/zend_sort.c b/Zend/zend_sort.c
index 4fe3835edb..355d2d1bad 100644
--- a/Zend/zend_sort.c
+++ b/Zend/zend_sort.c
@@ -21,73 +21,6 @@
#include "zend_sort.h"
#include <limits.h>
-#define QSORT_STACK_SIZE (sizeof(size_t) * CHAR_BIT)
-
-ZEND_API void zend_qsort(void *base, size_t nmemb, size_t siz, compare_func_t compare, swap_func_t swp) /* {{{ */
-{
- void *begin_stack[QSORT_STACK_SIZE];
- void *end_stack[QSORT_STACK_SIZE];
- register char *begin;
- register char *end;
- register char *seg1;
- register char *seg2;
- register char *seg2p;
- register int loop;
- size_t offset;
-
- begin_stack[0] = (char *) base;
- end_stack[0] = (char *) base + ((nmemb - 1) * siz);
-
- for (loop = 0; loop >= 0; --loop) {
- begin = begin_stack[loop];
- end = end_stack[loop];
-
- while (begin < end) {
- offset = (end - begin) >> Z_L(1);
- swp(begin, begin + (offset - (offset % siz)));
-
- seg1 = begin + siz;
- seg2 = end;
-
- while (1) {
- for (; seg1 < seg2 && compare(begin, seg1) > 0;
- seg1 += siz);
-
- for (; seg2 >= seg1 && compare(seg2, begin) > 0;
- seg2 -= siz);
-
- if (seg1 >= seg2)
- break;
-
- swp(seg1, seg2);
-
- seg1 += siz;
- seg2 -= siz;
- }
-
- swp(begin, seg2);
-
- seg2p = seg2;
-
- if ((seg2p - begin) <= (end - seg2p)) {
- if ((seg2p + siz) < end) {
- begin_stack[loop] = seg2p + siz;
- end_stack[loop++] = end;
- }
- end = seg2p - siz;
- }
- else {
- if ((seg2p - siz) > begin) {
- begin_stack[loop] = begin;
- end_stack[loop++] = seg2p - siz;
- }
- begin = seg2p + siz;
- }
- }
- }
-}
-/* }}} */
-
static inline void zend_sort_2(void *a, void *b, compare_func_t cmp, swap_func_t swp) /* {{{ */ {
if (cmp(a, b) > 0) {
swp(a, b);