Code review request: small optimization to localtime.c

Bruce Evans brde at optusnet.com.au
Thu Nov 29 20:18:20 PST 2007


On Thu, 29 Nov 2007, M. Warner Losh wrote:

> In message: <86lk8hhzs0.fsf at ds4.des.no>
>            Dag-Erling_Smørgrav <des at des.no> writes:
> : "M. Warner Losh" <imp at bsdimp.com> writes:
> : > Please find enclosed some small optimizations.  [...]
> :
> : almost completely unrelated, but while you're at it:
> :
> : >  	if (__isthreaded != 0) {
> :
> : __isthreaded is clearly (by its name) a predicate, comparing it
> : explicitly to 0 is redundant and disrupts my flow of thought when
> : reading the code.  Instead of just reading "if is threaded", I have to
> : take a second to parse the expression and check which way the comparison
> : goes.
> :
> : We already have a policy (unwritten as far as I know) of using explicit
> : comparisons for variables which are not clearly predicates, can we also
> : have one of *not* using explicit comparisons for those that are?  And
> : document both cases in style(9)?
>
> True, but very Brucian in the nature of the comment: I didn't change
> this in existing code. :-)

KNF rules are sort of the opposite in some respects --
-- "if ((flags & MASK) != 0)", which is like the above, is slightly
    more normal than "if (flags & MASK)". 
-- The unary "!" operator is rarely used.  "if (!isfoo)" and
    "if (!(flags & MASK))" are not normal.

Anyway, there is too much existing code with bad style to change.  I
draw the line (for non-booleans) between !error and !strcmp().

Bruce


More information about the freebsd-arch mailing list