diff --git a/include/asterisk/utils.h b/include/asterisk/utils.h index c0cce98ae232203c5f953227667e1833d6ebf0d8..4dc406db7ff0df7d3fc5c7a162f9d82d4a05005b 100644 --- a/include/asterisk/utils.h +++ b/include/asterisk/utils.h @@ -786,10 +786,10 @@ char *ast_utils_which(const char *binary, char *fullpath, size_t fullpath_size); typedef void (^_raii_cleanup_block_t)(void); static inline void _raii_cleanup_block(_raii_cleanup_block_t *b) { (*b)(); } -#define RAII_VAR(vartype, varname, initval, dtor) \ - _raii_cleanup_block_t _raii_cleanup_ ## varname __attribute__((cleanup(_raii_cleanup_block),unused)) = NULL; \ - __block vartype varname = initval; \ - _raii_cleanup_ ## varname = ^{ {(void)dtor(varname);} } +#define RAII_VAR(vartype, varname, initval, dtor) \ + __block vartype varname = initval; \ + _raii_cleanup_block_t _raii_cleanup_ ## varname __attribute__((cleanup(_raii_cleanup_block),unused)) = \ + ^{ {(void)dtor(varname);} }; #elif defined(__GNUC__)