diff options
Diffstat (limited to 'firmware/common/qsort.c')
-rw-r--r-- | firmware/common/qsort.c | 12 |
1 files changed, 6 insertions, 6 deletions
diff --git a/firmware/common/qsort.c b/firmware/common/qsort.c index d47f470999..b2071d447f 100644 --- a/firmware/common/qsort.c +++ b/firmware/common/qsort.c | |||
@@ -81,7 +81,7 @@ PORTABILITY | |||
81 | #define inline | 81 | #define inline |
82 | #endif | 82 | #endif |
83 | 83 | ||
84 | static inline char *med3 _PARAMS((char *, char *, char *, int (*)())); | 84 | static inline char *med3 _PARAMS((char *, char *, char *, int (*cmp)(const _PTR,const _PTR))); |
85 | static inline void swapfunc _PARAMS((char *, char *, int, int)); | 85 | static inline void swapfunc _PARAMS((char *, char *, int, int)); |
86 | 86 | ||
87 | #define min(a, b) (a) < (b) ? a : b | 87 | #define min(a, b) (a) < (b) ? a : b |
@@ -131,7 +131,7 @@ _DEFUN(med3, (a, b, c, cmp), | |||
131 | char *a _AND | 131 | char *a _AND |
132 | char *b _AND | 132 | char *b _AND |
133 | char *c _AND | 133 | char *c _AND |
134 | int (*cmp)()) | 134 | int (*cmp)(const _PTR,const _PTR)) |
135 | { | 135 | { |
136 | return cmp(a, b) < 0 ? | 136 | return cmp(a, b) < 0 ? |
137 | (cmp(b, c) < 0 ? b : (cmp(a, c) < 0 ? c : a )) | 137 | (cmp(b, c) < 0 ? b : (cmp(a, c) < 0 ? c : a )) |
@@ -143,7 +143,7 @@ _DEFUN(qsort, (a, n, es, cmp), | |||
143 | void *a _AND | 143 | void *a _AND |
144 | size_t n _AND | 144 | size_t n _AND |
145 | size_t es _AND | 145 | size_t es _AND |
146 | int (*cmp)()) | 146 | int (*cmp)(const _PTR,const _PTR)) |
147 | { | 147 | { |
148 | char *pa, *pb, *pc, *pd, *pl, *pm, *pn; | 148 | char *pa, *pb, *pc, *pd, *pl, *pm, *pn; |
149 | int d, r, swaptype, swap_cnt; | 149 | int d, r, swaptype, swap_cnt; |
@@ -208,11 +208,11 @@ loop: SWAPINIT(a, es); | |||
208 | pn = (char *) a + n * es; | 208 | pn = (char *) a + n * es; |
209 | r = min(pa - (char *)a, pb - pa); | 209 | r = min(pa - (char *)a, pb - pa); |
210 | vecswap(a, pb - r, r); | 210 | vecswap(a, pb - r, r); |
211 | r = min(pd - pc, pn - pd - es); | 211 | r = min((unsigned int)(pd - pc), pn - pd - es); |
212 | vecswap(pb, pn - r, r); | 212 | vecswap(pb, pn - r, r); |
213 | if ((r = pb - pa) > es) | 213 | if ((unsigned int)(r = pb - pa) > es) |
214 | qsort(a, r / es, es, cmp); | 214 | qsort(a, r / es, es, cmp); |
215 | if ((r = pd - pc) > es) { | 215 | if ((unsigned int)(r = pd - pc) > es) { |
216 | /* Iterate rather than recurse to save stack space */ | 216 | /* Iterate rather than recurse to save stack space */ |
217 | a = pn - r; | 217 | a = pn - r; |
218 | n = r / es; | 218 | n = r / es; |