[Mesa-dev] [PATCH 11/16] mesa: Add and use foreach_list_typed_safe.

Matt Turner mattst88 at gmail.com
Wed Jun 25 11:51:12 PDT 2014


---
 src/glsl/list.h                               | 9 +++++++++
 src/mesa/drivers/dri/i965/intel_mipmap_tree.c | 4 +---
 2 files changed, 10 insertions(+), 3 deletions(-)

diff --git a/src/glsl/list.h b/src/glsl/list.h
index 77e3aaf..b7221cb 100644
--- a/src/glsl/list.h
+++ b/src/glsl/list.h
@@ -630,4 +630,13 @@ inline void exec_node::insert_before(exec_list *before)
 	(__node)->__field.next != NULL; 				\
 	(__node) = exec_node_data(__type, (__node)->__field.next, __field))
 
+#define foreach_list_typed_safe(__type, __node, __field, __list)           \
+   for (__type * __node =                                                  \
+           exec_node_data(__type, (__list)->head, __field),                \
+               * __next =                                                  \
+           exec_node_data(__type, (__node)->__field.next, __field);        \
+        __next != NULL;                                                    \
+        __node = __next, __next =                                          \
+           exec_node_data(__type, (__next)->__field.next, __field))
+
 #endif /* LIST_CONTAINER_H */
diff --git a/src/mesa/drivers/dri/i965/intel_mipmap_tree.c b/src/mesa/drivers/dri/i965/intel_mipmap_tree.c
index 4c71e41..b8c24f7 100644
--- a/src/mesa/drivers/dri/i965/intel_mipmap_tree.c
+++ b/src/mesa/drivers/dri/i965/intel_mipmap_tree.c
@@ -1515,9 +1515,7 @@ intel_miptree_all_slices_resolve(struct brw_context *brw,
 {
    bool did_resolve = false;
 
-   foreach_list_safe(node, &mt->hiz_map) {
-      struct intel_resolve_map *map = (struct intel_resolve_map *)node;
-
+   foreach_list_typed_safe(struct intel_resolve_map, map, link, &mt->hiz_map) {
       if (map->need != need)
 	 continue;
 
-- 
1.8.3.2



More information about the mesa-dev mailing list