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

Pavel Machek
2009-06-19T15:00:03Z

>> int ret = 0;
>> - int wait_for_proc_work;
>> + int wait_for_proc_work = 0;
>>
>> if (*consumed == 0) {
>> if (put_user(BR_NOOP, (uint32_t __user *)ptr))
>> @@ -2155,8 +2155,8 @@ static int binder_thread_read(struct binder_proc *proc,
>> }
>>
>> retry:
>> - wait_for_proc_work = thread->transaction_stack == NULL&&
>> - list_empty(&thread->todo);
>> + if (list_empty(&thread->todo)&& thread->transaction_stack == NULL)
>> + wait_for_proc_work = 1;
>>
>
> I think the original looks cleaner (in both cases). Assigning a
> variable with the result of a boolean expression is perfectly
> reasonable. Perhaps change the type of the variable to "bool" to make
> it a bit clearer what's going on.
>
> (It would be a different matter if any of the expression had side-effects.)

Plus you have broken whitespace in there, changed performance
characteristics (list_empty now done first) and with gotos used around
that code I'm not at all sure transformation is equivalent.
Pavel

--
(english) http://www.livejournal.com/~pavelmachek
(cesky, pictures) http://atrey.karlin.mff.cuni.cz/~pavel/picture/horses/blog.html