diff options
author | Lennart Poettering <lennart@poettering.net> | 2013-04-16 05:25:57 +0200 |
---|---|---|
committer | Lennart Poettering <lennart@poettering.net> | 2013-04-16 05:25:57 +0200 |
commit | dfb33a9737e62ab872d3937b7690b252d2892fe8 (patch) | |
tree | 2cdc28e66d418c32c96cb2572c81cf9a3f8517bb /src/shared/macro.h | |
parent | 82da66fb750c91f06e713ff23a5e5c57ff05c2a8 (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.h | 12 |
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]; \ |