[augeas-devel] augeas: master - * src/errcode.h: more usable BUG_ON and BUG_FMT

David Lutterkort lutter at fedoraproject.org
Fri Jan 15 01:31:12 UTC 2010


Gitweb:        http://git.fedorahosted.org/git/augeas.git?p=augeas.git;a=commitdiff;h=b9cb63d3850d4cf67ee5419ee7cd39f549161f12
Commit:        b9cb63d3850d4cf67ee5419ee7cd39f549161f12
Parent:        d640667168c83297dde3f361ab8cd33945f1b124
Author:        David Lutterkort <lutter at redhat.com>
AuthorDate:    Wed Dec 23 17:33:18 2009 -0800
Committer:     David Lutterkort <lutter at redhat.com>
CommitterDate: Thu Jan 14 14:48:38 2010 -0800

* src/errcode.h: more usable BUG_ON and BUG_FMT

---
 src/errcode.h |   13 +++++++++++++
 1 files changed, 13 insertions(+), 0 deletions(-)

diff --git a/src/errcode.h b/src/errcode.h
index e5d2334..54dc330 100644
--- a/src/errcode.h
+++ b/src/errcode.h
@@ -68,6 +68,19 @@ void bug_on(struct error *err, const char *srcfile, int srclineno,
         }                                               \
     } while(0)
 
+/* A variant of assert that uses our error reporting infrastructure
+ * instead of aborting
+ */
+#ifdef NDEBUG
+# define ensure(cond, obj) ((void) (0))
+#else
+# define ensure(cond, obj)                                           \
+    if (!(cond)) {                                                   \
+        bug_on((obj)->error, __FILE__, __LINE__, NULL);              \
+        goto error;                                                  \
+    }
+#endif
+
 #define BUG_ON(cond, obj, fmt ...)                                  \
     if (cond) {                                                     \
         bug_on((obj)->error, __FILE__, __LINE__, ## fmt);           \




More information about the augeas-devel mailing list