chiark / gitweb /
sd-event: make errors on EPOLL_CTL_DEL pseudo-fatal
[elogind.git] / src / shared / macro.h
index cc1c9e73c08bddcbe39ebee5ac221a14b6d547f1..5fa17ed2085cdc2fe3a7b992468f5917d6cd96b0 100644 (file)
@@ -248,18 +248,19 @@ static inline unsigned long ALIGN_POWER2(unsigned long u) {
         REENABLE_WARNING
 #endif
 
+#define assert_log(expr) ((_likely_(expr))      \
+        ? (true)                                \
+        : (log_assert_failed_return(#expr, __FILE__, __LINE__, __PRETTY_FUNCTION__), false))
+
 #define assert_return(expr, r)                                          \
         do {                                                            \
-                if (_unlikely_(!(expr))) {                              \
-                        log_assert_failed_return(#expr, __FILE__, __LINE__, __PRETTY_FUNCTION__); \
+                if (!assert_log(expr))                                  \
                         return (r);                                     \
-                }                                                       \
         } while (false)
 
 #define assert_return_errno(expr, r, err)                               \
         do {                                                            \
-                if (_unlikely_(!(expr))) {                              \
-                        log_assert_failed_return(#expr, __FILE__, __LINE__, __PRETTY_FUNCTION__); \
+                if (!assert_log(expr)) {                                \
                         errno = err;                                    \
                         return (r);                                     \
                 }                                                       \