summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKonstantin Kharlamov <Hi-Angel@yandex.ru>2021-02-22 21:27:51 +0300
committerKonstantin Kharlamov <Hi-Angel@yandex.ru>2021-03-02 09:07:42 +0300
commit3f2c48343914d323f1ce1baa17f8cfbdfd86bdb9 (patch)
tree9529a137eb3439764d49209c83e2048c3f73a7ac
parent9477d91d698e07d1ffd77866120b0a6232de17a5 (diff)
downloadlibinput-3f2c48343914d323f1ce1baa17f8cfbdfd86bdb9.tar.gz
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>
-rw-r--r--src/util-list.h14
1 files changed, 8 insertions, 6 deletions
diff --git a/src/util-list.h b/src/util-list.h
index 292665a8..1e790082 100644
--- a/src/util-list.h
+++ b/src/util-list.h
@@ -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))