Re: qsort.c: remove useless variable
On Tue, Jan 03, 2017 at 04:40:47PM -0700, Todd C. Miller wrote: > On Tue, 03 Jan 2017 21:51:12 +0100, Alexander Bluhm wrote: > > > I think it would be nicer to keep the char * a variable and remove > > the (char *) casts instead. > > How about this? The qsort.o does not change. OK bluhm@ > > - todd > > Index: lib/libc/stdlib/qsort.c > === > RCS file: /cvs/src/lib/libc/stdlib/qsort.c,v > retrieving revision 1.13 > diff -u -p -u -r1.13 qsort.c > --- lib/libc/stdlib/qsort.c 13 Sep 2015 08:31:47 - 1.13 > +++ lib/libc/stdlib/qsort.c 3 Jan 2017 23:39:24 - > @@ -90,16 +90,16 @@ qsort(void *aa, size_t n, size_t es, int > > loop:SWAPINIT(a, es); > if (n < 7) { > - for (pm = (char *)a + es; pm < (char *) a + n * es; pm += es) > - for (pl = pm; pl > (char *) a && cmp(pl - es, pl) > 0; > + for (pm = a + es; pm < a + n * es; pm += es) > + for (pl = pm; pl > a && cmp(pl - es, pl) > 0; >pl -= es) > swap(pl, pl - es); > return; > } > - pm = (char *)a + (n / 2) * es; > + pm = a + (n / 2) * es; > if (n > 7) { > - pl = (char *)a; > - pn = (char *)a + (n - 1) * es; > + pl = a; > + pn = a + (n - 1) * es; > if (n > 40) { > d = (n / 8) * es; > pl = med3(pl, pl + d, pl + 2 * d, cmp); > @@ -109,9 +109,9 @@ loop: SWAPINIT(a, es); > pm = med3(pl, pm, pn, cmp); > } > swap(a, pm); > - pa = pb = (char *)a + es; > + pa = pb = a + es; > > - pc = pd = (char *)a + (n - 1) * es; > + pc = pd = a + (n - 1) * es; > for (;;) { > while (pb <= pc && (cmp_result = cmp(pb, a)) <= 0) { > if (cmp_result == 0) { > @@ -134,8 +134,8 @@ loop: SWAPINIT(a, es); > pc -= es; > } > > - pn = (char *)a + n * es; > - r = min(pa - (char *)a, pb - pa); > + pn = a + n * es; > + r = min(pa - a, pb - pa); > vecswap(a, pb - r, r); > r = min(pd - pc, pn - pd - es); > vecswap(pb, pn - r, r);
Re: qsort.c: remove useless variable
On Tue, 03 Jan 2017 21:51:12 +0100, Alexander Bluhm wrote: > I think it would be nicer to keep the char * a variable and remove > the (char *) casts instead. How about this? - todd Index: lib/libc/stdlib/qsort.c === RCS file: /cvs/src/lib/libc/stdlib/qsort.c,v retrieving revision 1.13 diff -u -p -u -r1.13 qsort.c --- lib/libc/stdlib/qsort.c 13 Sep 2015 08:31:47 - 1.13 +++ lib/libc/stdlib/qsort.c 3 Jan 2017 23:39:24 - @@ -90,16 +90,16 @@ qsort(void *aa, size_t n, size_t es, int loop: SWAPINIT(a, es); if (n < 7) { - for (pm = (char *)a + es; pm < (char *) a + n * es; pm += es) - for (pl = pm; pl > (char *) a && cmp(pl - es, pl) > 0; + for (pm = a + es; pm < a + n * es; pm += es) + for (pl = pm; pl > a && cmp(pl - es, pl) > 0; pl -= es) swap(pl, pl - es); return; } - pm = (char *)a + (n / 2) * es; + pm = a + (n / 2) * es; if (n > 7) { - pl = (char *)a; - pn = (char *)a + (n - 1) * es; + pl = a; + pn = a + (n - 1) * es; if (n > 40) { d = (n / 8) * es; pl = med3(pl, pl + d, pl + 2 * d, cmp); @@ -109,9 +109,9 @@ loop: SWAPINIT(a, es); pm = med3(pl, pm, pn, cmp); } swap(a, pm); - pa = pb = (char *)a + es; + pa = pb = a + es; - pc = pd = (char *)a + (n - 1) * es; + pc = pd = a + (n - 1) * es; for (;;) { while (pb <= pc && (cmp_result = cmp(pb, a)) <= 0) { if (cmp_result == 0) { @@ -134,8 +134,8 @@ loop: SWAPINIT(a, es); pc -= es; } - pn = (char *)a + n * es; - r = min(pa - (char *)a, pb - pa); + pn = a + n * es; + r = min(pa - a, pb - pa); vecswap(a, pb - r, r); r = min(pd - pc, pn - pd - es); vecswap(pb, pn - r, r);
Re: qsort.c: remove useless variable
On Tue, Jan 03, 2017 at 12:57:59PM -0700, Todd C. Miller wrote: > When qsort.c was de-registered, the register version of 'aa' was > not removed. Since qsort() already contains casts of a to char * > there's no need for a separate variable here. I think it would be nicer to keep the char * a variable and remove the (char *) casts instead. bluhm > > - todd > > Index: lib/libc/stdlib/qsort.c > === > RCS file: /cvs/src/lib/libc/stdlib/qsort.c,v > retrieving revision 1.13 > diff -u -p -u -r1.13 qsort.c > --- lib/libc/stdlib/qsort.c 13 Sep 2015 08:31:47 - 1.13 > +++ lib/libc/stdlib/qsort.c 3 Jan 2017 14:29:03 - > @@ -81,12 +81,11 @@ med3(char *a, char *b, char *c, int (*cm > } > > void > -qsort(void *aa, size_t n, size_t es, int (*cmp)(const void *, const void *)) > +qsort(void *a, size_t n, size_t es, int (*cmp)(const void *, const void *)) > { > char *pa, *pb, *pc, *pd, *pl, *pm, *pn; > int cmp_result, swaptype; > size_t d, r; > - char *a = aa; > > loop:SWAPINIT(a, es); > if (n < 7) {