From: Michal Schmidt Date: Thu, 26 Jul 2012 12:23:49 +0000 (+0200) Subject: log: out-of-line __log_oom() X-Git-Tag: v188~74 X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?p=elogind.git;a=commitdiff_plain;h=6dc1e7e0ba35c078b533d06a4933edae38fd94ad;hp=cd6f1c0f87fd3e3345e51476e25cd1104efb7fa3 log: out-of-line __log_oom() The callers' code gets smaller. --- diff --git a/src/shared/log.c b/src/shared/log.c index 6a10dc454..1cbc9d625 100644 --- a/src/shared/log.c +++ b/src/shared/log.c @@ -658,6 +658,11 @@ _noreturn_ void log_assert_failed_unreachable(const char *text, const char *file log_assert(text, file, line, func, "Code should not be reached '%s' at %s:%u, function %s(). Aborting."); } +int __log_oom(const char *file, int line, const char *func) { + log_meta(LOG_ERR, file, line, func, "Out of memory."); + return -ENOMEM; +} + int log_set_target_from_string(const char *e) { LogTarget t; diff --git a/src/shared/log.h b/src/shared/log.h index 7c3376c31..ab894df17 100644 --- a/src/shared/log.h +++ b/src/shared/log.h @@ -103,11 +103,8 @@ 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__) -/* This must be a macro for __LINE__ etc. to work */ -#define log_oom() ({ \ - log_error("Out of memory."); \ - -ENOMEM; \ -}) +int __log_oom(const char *file, int line, const char *func); +#define log_oom() __log_oom(__FILE__, __LINE__, __func__) /* This modifies the buffer passed! */ #define log_dump(level, buffer) log_dump_internal(level, __FILE__, __LINE__, __func__, buffer)