From ded57b5a4131a213d57f5a20d50b819b7a8924df Mon Sep 17 00:00:00 2001
From: marha <marha@users.sourceforge.net>
Date: Wed, 17 Oct 2012 08:04:15 +0200
Subject: pixman mesa git update 17 oct 2012

pixman: 6e56098c0338ce74228187e4c96fed1a66cb0956
mesa: 0199ff7fe323cf527ffacfdef3258ab85799dd13
---
 mesalib/src/gallium/auxiliary/util/u_debug.c       | 41 ++++++++++++++++++++++
 mesalib/src/gallium/auxiliary/util/u_debug.h       |  4 +++
 mesalib/src/gallium/auxiliary/util/u_double_list.h |  1 +
 3 files changed, 46 insertions(+)

(limited to 'mesalib/src/gallium')

diff --git a/mesalib/src/gallium/auxiliary/util/u_debug.c b/mesalib/src/gallium/auxiliary/util/u_debug.c
index c41585fdd..b26192a8b 100644
--- a/mesalib/src/gallium/auxiliary/util/u_debug.c
+++ b/mesalib/src/gallium/auxiliary/util/u_debug.c
@@ -691,4 +691,45 @@ error1:
    ;
 }
 
+
+/**
+ * Print PIPE_TRANSFER_x flags with a message.
+ */
+void
+debug_print_transfer_flags(const char *msg, unsigned usage)
+{
+#define FLAG(x)  { x, #x }
+   static const struct {
+      unsigned bit;
+      const char *name;
+   } flags[] = {
+      FLAG(PIPE_TRANSFER_READ),
+      FLAG(PIPE_TRANSFER_WRITE),
+      FLAG(PIPE_TRANSFER_MAP_DIRECTLY),
+      FLAG(PIPE_TRANSFER_DISCARD_RANGE),
+      FLAG(PIPE_TRANSFER_DONTBLOCK),
+      FLAG(PIPE_TRANSFER_UNSYNCHRONIZED),
+      FLAG(PIPE_TRANSFER_FLUSH_EXPLICIT),
+      FLAG(PIPE_TRANSFER_DISCARD_WHOLE_RESOURCE)
+   };
+   unsigned i;
+
+   debug_printf("%s ", msg);
+
+   for (i = 0; i < Elements(flags); i++) {
+      if (usage & flags[i].bit) {
+         debug_printf("%s", flags[i].name);
+         usage &= ~flags[i].bit;
+         if (usage) {
+            debug_printf(" | ");
+         }
+      }
+   }
+
+   debug_printf("\n");
+#undef FLAG
+}
+
+
+
 #endif
diff --git a/mesalib/src/gallium/auxiliary/util/u_debug.h b/mesalib/src/gallium/auxiliary/util/u_debug.h
index ec7d4a07a..14d319c2c 100644
--- a/mesalib/src/gallium/auxiliary/util/u_debug.h
+++ b/mesalib/src/gallium/auxiliary/util/u_debug.h
@@ -446,6 +446,10 @@ void debug_dump_float_rgba_bmp(const char *filename,
 #endif
 
 
+void
+debug_print_transfer_flags(const char *msg, unsigned usage);
+
+
 #ifdef	__cplusplus
 }
 #endif
diff --git a/mesalib/src/gallium/auxiliary/util/u_double_list.h b/mesalib/src/gallium/auxiliary/util/u_double_list.h
index 9d1129b18..408c26dfc 100644
--- a/mesalib/src/gallium/auxiliary/util/u_double_list.h
+++ b/mesalib/src/gallium/auxiliary/util/u_double_list.h
@@ -82,6 +82,7 @@ static INLINE void list_del(struct list_head *item)
 {
     item->prev->next = item->next;
     item->next->prev = item->prev;
+    item->prev = item->next = NULL;
 }
 
 static INLINE void list_delinit(struct list_head *item)
-- 
cgit v1.2.3