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 -0000      1.13
> +++ lib/libc/stdlib/qsort.c   3 Jan 2017 23:39:24 -0000
> @@ -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);

Reply via email to