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>
