Date: Tue, 17 Jan 2017 22:30:07 +0200 From: Andriy Gapon <avg@FreeBSD.org> To: Adrian Chadd <adrian@FreeBSD.org>, Ian Lepore <ian@FreeBSD.org> Cc: "src-committers@freebsd.org" <src-committers@FreeBSD.org>, "svn-src-all@freebsd.org" <svn-src-all@FreeBSD.org>, "svn-src-head@freebsd.org" <svn-src-head@FreeBSD.org> Subject: Re: svn commit: r312236 - head/sys/net80211 Message-ID: <0c2cb416-9d33-3d50-95be-c84154c11797@FreeBSD.org> In-Reply-To: <CAJ-VmomFOgi=subpa0A=adBUJfGJLKfnBWuSYcx6b3x%2BKTtXNA@mail.gmail.com> References: <201701151949.v0FJnl2h027169@repo.freebsd.org> <1484510213.86335.110.camel@freebsd.org> <CAJ-VmomFOgi=subpa0A=adBUJfGJLKfnBWuSYcx6b3x%2BKTtXNA@mail.gmail.com>
next in thread | previous in thread | raw e-mail | index | archive | help
On 15/01/2017 22:43, Adrian Chadd wrote:
> On 15 January 2017 at 11:56, Ian Lepore <ian@freebsd.org> wrote:
>
>>
>> What is the point of the !! in these macros? The expressions already
>> have boolean type (even in C++ where it matters) due to the ==.
>> Removing the !! would also make one level of parens redundant.
>
> It's just a habit i picked up from linux-land. That way it really is
> only 1 or 0, so things like debugging output and such make easier
> sense.
Well, that habit is useful when applied to results of bit-wise operations.
It does nothing but obfuscating the code when applied to results of logical
operations. Which is the case here.
And even with the bit-wise operation we have a FreeBSD idiom of comparing the
result with zero using != 0. More verbose, but also more stylish.
> It's also fixed a handful of bugs in the past (but I can't think of
> exact cases right now) - primarily where other code expected 1 or 0
> (for things like shifts into protocol fields) and the macro returns 0
> or ${LARGEVAL}.
--
Andriy Gapon
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?0c2cb416-9d33-3d50-95be-c84154c11797>
