svn commit: r312236 - head/sys/net80211

Andriy Gapon avg at FreeBSD.org
Tue Jan 17 20:31:42 UTC 2017


On 15/01/2017 22:43, Adrian Chadd wrote:
> On 15 January 2017 at 11:56, Ian Lepore <ian at 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


More information about the svn-src-all mailing list