summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMichal Schmidt <mschmidt@redhat.com>2012-07-26 14:23:49 +0200
committerMichal Schmidt <mschmidt@redhat.com>2012-07-26 14:24:40 +0200
commit6dc1e7e0ba35c078b533d06a4933edae38fd94ad (patch)
tree708b9c05aeb64cddb4c2febe15309cb8a3892853
parentcd6f1c0f87fd3e3345e51476e25cd1104efb7fa3 (diff)
downloadsystemd-6dc1e7e0ba35c078b533d06a4933edae38fd94ad.tar.gz
log: out-of-line __log_oom()
The callers' code gets smaller.
-rw-r--r--src/shared/log.c5
-rw-r--r--src/shared/log.h7
2 files changed, 7 insertions, 5 deletions
diff --git a/src/shared/log.c b/src/shared/log.c
index 6a10dc4540..1cbc9d6250 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 7c3376c31e..ab894df172 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)