Mesa (master): util/list: Add a list pair iterator

GitLab Mirror gitlab-mirror at kemper.freedesktop.org
Thu May 14 00:07:41 UTC 2020


Module: Mesa
Branch: master
Commit: aeb95fda541719d5fe9b8fdb531f3370228228d7
URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=aeb95fda541719d5fe9b8fdb531f3370228228d7

Author: Jason Ekstrand <jason at jlekstrand.net>
Date:   Mon Aug  5 16:19:06 2019 -0500

util/list: Add a list pair iterator

Reviewed-by: Kenneth Graunke <kenneth at whitecape.org>
Reviewed-by: Alyssa Rosenzweig <alyssa.rosenzweig at collabora.com>
Reviewed-by: Eric Anholt <eric at anholt.net>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5019>

---

 src/util/list.h | 7 +++++++
 1 file changed, 7 insertions(+)

diff --git a/src/util/list.h b/src/util/list.h
index 8a18c4b0d8d..17800e4ed4e 100644
--- a/src/util/list.h
+++ b/src/util/list.h
@@ -246,4 +246,11 @@ static inline void list_validate(const struct list_head *list)
 	&pos->member != (head);                                         \
 	pos = LIST_ENTRY(type, pos->member.prev, member))
 
+#define list_pair_for_each_entry(type, pos1, pos2, head1, head2, member) \
+   for (type *pos1 = LIST_ENTRY(type, (head1)->next, member),           \
+             *pos2 = LIST_ENTRY(type, (head2)->next, member);           \
+        &pos1->member != (head1) && &pos2->member != (head2);           \
+	pos1 = LIST_ENTRY(type, pos1->member.next, member),               \
+	pos2 = LIST_ENTRY(type, pos2->member.next, member))
+
 #endif /*_UTIL_LIST_H_*/



More information about the mesa-commit mailing list