ref: 405cb6b12e0367c26c96d4cd1df78bfb329b3e09
parent: 50e6a854fc3aa853145c4ff0122c1439a979ec58
author: Ori Bernstein <ori@eigenstate.org>
date: Tue Aug 10 22:27:48 EDT 2021
qsort: allow usize-sized arrays. As part of the transition to 64 bit userspace APIs, we need to make our libc functions which take arrays all accept and deal with large sizes. This does the work for qsort.
--- a/sys/src/libc/port/qsort.c
+++ b/sys/src/libc/port/qsort.c
@@ -8,12 +8,12 @@
struct
{
int (*cmp)(void*, void*);
- void (*swap)(char*, char*, long);
- long es;
+ void (*swap)(char*, char*, usize);
+ usize es;
} Sort;
static void
-swapb(char *i, char *j, long es)
+swapb(char *i, char *j, usize es)
{
char c;
@@ -27,7 +27,7 @@
}
static void
-swapi(char *ii, char *ij, long es)
+swapi(char *ii, char *ij, usize es)
{
long *i, *j, c;
@@ -42,9 +42,9 @@
}
static char*
-pivot(char *a, long n, Sort *p)
+pivot(char *a, usize n, Sort *p)
{
- long j;
+ usize j;
char *pi, *pj, *pk;
j = n/6 * p->es;
@@ -69,9 +69,9 @@
}
static void
-qsorts(char *a, long n, Sort *p)
+qsorts(char *a, usize n, Sort *p)
{
- long j, es;
+ usize j, es;
char *pi, *pj, *pn;
es = p->es;
@@ -111,7 +111,7 @@
}
void
-qsort(void *va, long n, long es, int (*cmp)(void*, void*))
+qsort(void *va, usize n, usize es, int (*cmp)(void*, void*))
{
Sort s;
--
⑨