X-Git-Url: http://www.aleph1.co.uk/gitweb/?p=yaffs2.git;a=blobdiff_plain;f=yaffs_qsort.c;h=474be9cea39967774053d3e9756d888da07e304d;hp=296701d2e41fe606870134d059d49fb846cf77a8;hb=6ce07c3f6215ce6a4f4b7fe520ef48e8cf71c7cb;hpb=1e45565bfda1879e1a661d8b2d1f4075b9fe1061 diff --git a/yaffs_qsort.c b/yaffs_qsort.c index 296701d..474be9c 100644 --- a/yaffs_qsort.c +++ b/yaffs_qsort.c @@ -50,7 +50,7 @@ static __inline void swapfunc(char *a, char *b, int n, int swaptype) { - if (swaptype <= 1) + if (swaptype <= 1) swapcode(long, a, b, n) else swapcode(char, a, b, n) @@ -74,9 +74,13 @@ med3(char *a, char *b, char *c, int (*cmp)(const void *, const void *)) :(cmp(b, c) > 0 ? b : (cmp(a, c) < 0 ? a : c )); } +#ifndef min #define min(a,b) (((a) < (b)) ? (a) : (b)) +#endif + void -qsort(void *aa, size_t n, size_t es, int (*cmp)(const void *, const void *)) +yaffs_qsort(void *aa, size_t n, size_t es, + int (*cmp)(const void *, const void *)) { char *pa, *pb, *pc, *pd, *pl, *pm, *pn; int d, r, swaptype, swap_cnt; @@ -133,7 +137,7 @@ loop: SWAPINIT(a, es); } if (swap_cnt == 0) { /* Switch to insertion sort */ for (pm = (char *) a + es; pm < (char *) a + n * es; pm += es) - for (pl = pm; pl > (char *) a && cmp(pl - es, pl) > 0; + for (pl = pm; pl > (char *) a && cmp(pl - es, pl) > 0; pl -= es) swap(pl, pl - es); return; @@ -145,12 +149,12 @@ loop: SWAPINIT(a, es); r = min((long)(pd - pc), (long)(pn - pd - es)); vecswap(pb, pn - r, r); if ((r = pb - pa) > es) - qsort(a, r / es, es, cmp); - if ((r = pd - pc) > es) { + yaffs_qsort(a, r / es, es, cmp); + if ((r = pd - pc) > es) { /* Iterate rather than recurse to save stack space */ a = pn - r; n = r / es; goto loop; } -/* qsort(pn - r, r / es, es, cmp);*/ +/* yaffs_qsort(pn - r, r / es, es, cmp);*/ }