Re: [PATCH] list: always set pos in list_prepare_entry()
From: Andy Shevchenko
Date: Mon Mar 07 2022 - 05:20:57 EST
On Sun, Mar 06, 2022 at 05:26:35PM +0100, Jakob Koschel wrote:
> In order to assign the result from list_prepare_entry() to another
> variable, it should also be set when pos != NULL.
>
> This will be useful once the list iterator is no longer used after
> the loop.
...
> #define list_prepare_entry(pos, head, member) \
> - ((pos) ? : list_entry(head, typeof(*pos), member))
> + ((pos) ? pos : list_entry(head, typeof(*pos), member))
I'm not sure why then we have () surrounding first pos.
Am I right that the original is an equivalent to
((pos) ? (pos) : list_entry(head, typeof(*pos), member))
?
Then what the difference is made by not using parentheses?
--
With Best Regards,
Andy Shevchenko