Re: [PATCH 1/6] staging: android: binder: Remove some funny && usage

Jeremy Fitzhardinge
2009-06-17T16:31:56Z

On 06/17/09 09:08, Daniel Walker wrote:
> On Wed, 2009-06-17 at 08:28 -0700, Jeremy Fitzhardinge wrote:
>
>> I have a general code-cleanup rule to
>> convert:
>>
>> foo = false;
>> if (something_is_true())
>> foo = true;
>>
>> to
>>
>> foo = something_is_true();
>>
>
> Above seems more like a speed up, rather than a clean up. I would think
> it's likely fine for a lot of cases tho.
>

The compiler should be smart enough to generate identical code in both
cases. I think the second is better because it more directly expresses
what you're trying to do: you have a boolean predicate, and you're
assigning it to a boolean variable. The if() form has the same effect,
but couches it in terms of control flow which is just obfuscation.

> I was hoping Brian could explain this. I also added Arve (the author) to
> the CC list. Maybe they can explain the purpose of the subsystem.
>

Also, what its usermode ABI is, how stable it is, whether its generally
useful, does it have glibc/other library support, etc. Would you ever
want to use this in a non-Android context?

> Was this a recent change to C99, cause my compiler still doesn't know
> about it .. I also see a couple places in the kernel where bool is
> getting typedef'ed or somehow declared..
>

The C99 type has some stupid name like "_Bool", but the kernel typedefs
it to bool everywhere.

J