mirror of
https://gitlab.freedesktop.org/libinput/libinput.git
synced 2025-12-25 03:30:05 +01:00
util-list.h: simplify code by removing an excess initialization
The assignment of zero is done to work around false-positives of coverity about uninitialized variable usage. Getting rid of it inside the macro will allow in later commit to declare a variable inside `for-loop` rather than outside of it. Do it by declaring a new list_first_entry_by_type helper which accepts a type rather than a variable. Signed-off-by: Konstantin Kharlamov <Hi-Angel@yandex.ru>
This commit is contained in:
parent
9477d91d69
commit
3f2c483439
1 changed files with 8 additions and 6 deletions
|
|
@ -53,15 +53,17 @@ bool list_empty(const struct list *list);
|
|||
#define list_first_entry(head, pos, member) \
|
||||
container_of((head)->next, __typeof__(*pos), member)
|
||||
|
||||
#define list_first_entry_by_type(head, container_type, member) \
|
||||
container_of((head)->next, container_type, member)
|
||||
|
||||
#define list_for_each(pos, head, member) \
|
||||
for (pos = 0, pos = list_first_entry(head, pos, member); \
|
||||
for (pos = list_first_entry_by_type(head, __typeof__(*pos), member); \
|
||||
&pos->member != (head); \
|
||||
pos = list_first_entry(&pos->member, pos, member))
|
||||
pos = list_first_entry_by_type(&pos->member, __typeof__(*pos), member))
|
||||
|
||||
#define list_for_each_safe(pos, tmp, head, member) \
|
||||
for (pos = 0, tmp = 0, \
|
||||
pos = list_first_entry(head, pos, member), \
|
||||
tmp = list_first_entry(&pos->member, tmp, member); \
|
||||
for (pos = list_first_entry_by_type(head, __typeof__(*pos), member), \
|
||||
tmp = list_first_entry_by_type(&pos->member, __typeof__(*tmp), member); \
|
||||
&pos->member != (head); \
|
||||
pos = tmp, \
|
||||
tmp = list_first_entry(&pos->member, tmp, member))
|
||||
tmp = list_first_entry_by_type(&pos->member, __typeof__(*tmp), member))
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue