Re: A CodingStyle suggestion

From: Roland Dreier
Date: Sat Feb 03 2007 - 19:21:55 EST


> Good catch :). A small grep of `access_ok' reveals that it's always used in the
> form of:
> if (!access_ok()) { .. }
>
> I can conclude that verbal/imperative methods like `kmalloc, add_work' be
> checked as:
> ret = do_work();
> if (ret) { ... }
> and predicate methods like `acess_ok, pci_dev_present' be checked like:
> if (!access_ok) { ... }
> if (pci_dev_present) { ...}
>
> Any comments ?

I don't think that's really the distinction that matters. I think
really the issue is that assignment within an if is hard to read, so

ret = foo(a, b);
if (ret) { ... }

is clearly preferred to

if ((ret = foo(a,b))) { ... }

However, in my opinion something like

if (foo(a,b)) { ... }

if perfectly fine if the return value of foo is not needed anywhere
else. In other words, there's no sense introducing a temporary
variable to hold the return value if you're never going to do anything
with it other than check it on the next line.

- R.
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/