chiark / gitweb /
log: log_oom() must be a macro
authorMichal Schmidt <mschmidt@redhat.com>
Thu, 26 Jul 2012 12:07:27 +0000 (14:07 +0200)
committerMichal Schmidt <mschmidt@redhat.com>
Thu, 26 Jul 2012 12:07:27 +0000 (14:07 +0200)
src/shared/log.h

index 7bdb3e0..7c3376c 100644 (file)
@@ -103,10 +103,11 @@ int log_dump_internal(
 #define log_warning(...) log_meta(LOG_WARNING, __FILE__, __LINE__, __func__, __VA_ARGS__)
 #define log_error(...)   log_meta(LOG_ERR,     __FILE__, __LINE__, __func__, __VA_ARGS__)
 
-static inline int log_oom(void) {
-       log_error("Out of memory.");
-       return -ENOMEM;
-}
+/* This must be a macro for __LINE__ etc. to work */
+#define log_oom() ({ \
+       log_error("Out of memory."); \
+       -ENOMEM; \
+})
 
 /* This modifies the buffer passed! */
 #define log_dump(level, buffer) log_dump_internal(level, __FILE__, __LINE__, __func__, buffer)