Mesa (master): util: add debug_warn_once() macro

Brian Paul brianp at kemper.freedesktop.org
Sat Jan 7 21:19:01 UTC 2012


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

Author: Brian Paul <brianp at vmware.com>
Date:   Sat Jan  7 14:16:27 2012 -0700

util: add debug_warn_once() macro

Emits a warning message, but only once to avoid tons of repeated warnings.

---

 src/gallium/auxiliary/util/u_debug.h |   19 +++++++++++++++++++
 1 files changed, 19 insertions(+), 0 deletions(-)

diff --git a/src/gallium/auxiliary/util/u_debug.h b/src/gallium/auxiliary/util/u_debug.h
index cbea358..ed19cda 100644
--- a/src/gallium/auxiliary/util/u_debug.h
+++ b/src/gallium/auxiliary/util/u_debug.h
@@ -215,6 +215,25 @@ void _debug_assert_fail(const char *expr,
 
 
 /**
+ * Emit a warning message, but only once.
+ */
+#ifdef DEBUG
+#define debug_warn_once(__msg) \
+   do { \
+      static bool warned = FALSE; \
+      if (!warned) { \
+         _debug_printf("%s:%u:%s: one time warning: %s\n", \
+                       __FILE__, __LINE__, __FUNCTION__, __msg); \
+         warned = TRUE; \
+      } \
+   } while (0)
+#else
+#define debug_warn_once(__msg) \
+   ((void)0) 
+#endif
+
+
+/**
  * Output an error message. Not muted on release version.
  */
 #ifdef DEBUG




More information about the mesa-commit mailing list