summaryrefslogtreecommitdiff
path: root/src/shared/macro.h
diff options
context:
space:
mode:
authorLennart Poettering <lennart@poettering.net>2013-04-16 05:25:57 +0200
committerLennart Poettering <lennart@poettering.net>2013-04-16 05:25:57 +0200
commitdfb33a9737e62ab872d3937b7690b252d2892fe8 (patch)
tree2cdc28e66d418c32c96cb2572c81cf9a3f8517bb /src/shared/macro.h
parent82da66fb750c91f06e713ff23a5e5c57ff05c2a8 (diff)
macro: rework how we define cleanup macros
There's now a generic _cleanup_ macro with an argument. The macros for specific types are now defined using this macro, and in the header files where they belong. All cleanup handlers are now inline functions.
Diffstat (limited to 'src/shared/macro.h')
-rw-r--r--src/shared/macro.h12
1 files changed, 1 insertions, 11 deletions
diff --git a/src/shared/macro.h b/src/shared/macro.h
index 99dc733853..cca41a3f6a 100644
--- a/src/shared/macro.h
+++ b/src/shared/macro.h
@@ -45,6 +45,7 @@
#define _weakref_(x) __attribute__((weakref(#x)))
#define _introspect_(x) __attribute__((section("introspect." x)))
#define _alignas_(x) __attribute__((aligned(__alignof(x))))
+#define _cleanup_(x) __attribute__((cleanup(x)))
/* automake test harness */
#define EXIT_TEST_SKIP 77
@@ -214,17 +215,6 @@ static inline size_t IOVEC_INCREMENT(struct iovec *i, unsigned n, size_t k) {
return k;
}
-#define _cleanup_free_ __attribute__((cleanup(freep)))
-#define _cleanup_fclose_ __attribute__((cleanup(fclosep)))
-#define _cleanup_pclose_ __attribute__((cleanup(pclosep)))
-#define _cleanup_close_ __attribute__((cleanup(closep)))
-#define _cleanup_closedir_ __attribute__((cleanup(closedirp)))
-#define _cleanup_umask_ __attribute__((cleanup(umaskp)))
-#define _cleanup_set_free_ __attribute__((cleanup(set_freep)))
-#define _cleanup_set_free_free_ __attribute__((cleanup(set_free_freep)))
-#define _cleanup_strv_free_ __attribute__((cleanup(strv_freep)))
-#define _cleanup_journal_close_ __attribute__((cleanup(journal_closep)))
-
#define VA_FORMAT_ADVANCE(format, ap) \
do { \
int _argtypes[128]; \