summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSøren Sandmann Pedersen <sandmann@redhat.com>2009-12-11 11:14:19 -0500
committerSøren Sandmann Pedersen <sandmann@redhat.com>2009-12-11 11:14:19 -0500
commit54bc3ee64e5582a348cb0e48b3c54b1680ba7937 (patch)
tree2ac75ecb07676d21198500a4bc2aac897105e552
parentce78288d7783a27700223c39e23880f4f425f70b (diff)
region: Enable or disable fatal errors and selfchecks based on version numberregion-debug
For stable releases, assertions and selfchecks are turned off. For unstable releases, assertions and selfchecks are turned on. For random git checkouts, assertions are on, but selfchecks are off.
-rw-r--r--pixman/pixman-region.c41
1 files changed, 36 insertions, 5 deletions
diff --git a/pixman/pixman-region.c b/pixman/pixman-region.c
index f88955f3..df38ea08 100644
--- a/pixman/pixman-region.c
+++ b/pixman/pixman-region.c
@@ -66,9 +66,42 @@
#define GOOD_RECT(rect) ((rect)->x1 < (rect)->x2 && (rect)->y1 < (rect)->y2)
#define BAD_RECT(rect) ((rect)->x1 > (rect)->x2 || (rect)->y1 > (rect)->y2)
-#define noPIXMAN_REGION_LOG_FAILURES
+/* Turn on debugging depending on what type of release this is
+ */
-#if defined PIXMAN_REGION_LOG_FAILURES || defined PIXMAN_REGION_DEBUG
+#if ((PIXMAN_VERSION_MICRO % 2) == 1)
+/* Random git checkout.
+ *
+ * Those are often used for performance work, so we don't turn on the
+ * full self-checking, but we do turn on the asserts.
+ */
+# define FATAL_BUGS
+# define noSELF_CHECKS
+#elif ((PIXMAN_VERSION_MINOR % 2) == 0)
+/* Stable release.
+ *
+ * We don't want assertions because the X server should stay alive
+ * if possible. We also don't want self-checks for performance-reasons.
+ */
+# define noFATAL_BUGS
+# define noSELF_CHECKS
+#else
+/* Development snapshot.
+ *
+ * These are the things that get shipped in development distributions
+ * such as Rawhide. We want both self-checking and fatal assertions
+ * to catch as many bugs as possible.
+ */
+# define FATAL_BUGS
+# define SELF_CHECKS
+#endif
+
+#ifndef FATAL_BUGS
+# define assert(expr)
+# define abort()
+#endif
+
+#ifdef SELF_CHECKS
static void
log_region_error (const char *function, const char *message)
@@ -83,9 +116,7 @@ log_region_error (const char *function, const char *message)
"Set a breakpoint on 'log_region_error' to debug\n\n",
function, message);
-#if defined PIXMAN_REGION_DEBUG
- abort ();
-#endif
+ abort (); /* This is #defined away unless FATAL_BUGS is defined */
n_messages++;
}