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