From: Michal Schmidt Date: Thu, 26 Jul 2012 12:07:27 +0000 (+0200) Subject: log: log_oom() must be a macro X-Git-Tag: v188~75 X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?p=elogind.git;a=commitdiff_plain;h=cd6f1c0f87fd3e3345e51476e25cd1104efb7fa3 log: log_oom() must be a macro --- diff --git a/src/shared/log.h b/src/shared/log.h index 7bdb3e086..7c3376c31 100644 --- a/src/shared/log.h +++ b/src/shared/log.h @@ -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)