Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 20 Feb 2013 10:49:32 +0100
From:      Giorgos Keramidas <keramida@FreeBSD.org>
To:        David Chisnall <theraven@FreeBSD.org>
Cc:        svn-src-head@FreeBSD.org, mdf@FreeBSD.org, svn-src-all@FreeBSD.org, src-committers@FreeBSD.org
Subject:   Re: svn commit: r247014 - head/lib/libc/stdlib
Message-ID:  <20130220094930.GB26651@saturn>
In-Reply-To: <79B2F826-6CB5-4CD5-8C7D-8220833403EF@FreeBSD.org>
References:  <201302192357.r1JNveLq039940@svn.freebsd.org> <CAMBSHm-ZPNAYj1tqs%2B8paYJgn69=zPe5O-tsn1dvn4t2156muA@mail.gmail.com> <79B2F826-6CB5-4CD5-8C7D-8220833403EF@FreeBSD.org>

next in thread | previous in thread | raw e-mail | index | archive | help
On 2013-02-20 09:32, David Chisnall <theraven@FreeBSD.org> wrote:
> On 20 Feb 2013, at 08:25, mdf@FreeBSD.org wrote:
> > These should be declared const int *.  And the cast shouldn't be
> > needed in C, since void * can be assigned to any other pointer type.
>
> In fact, the entire function body can be replaced with:
>
>   return (*(int*)p1 - *(int*)p2);
>
> qsort doesn't require that you return -1, 0, or 1, it requires you return <0, 0, or >0.

That's true.  Since we are trying to document the interface, I'd prefer
if we don't compress the comparison too much.  Would something like this
be ok too?

int
int_compare(const void *p1, const void *p2)
{
    const int *left = p1;
    const int *right = p2;

    return (*left - *right);
}




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20130220094930.GB26651>