19 OF_ASSUME_NONNULL_BEGIN
21 typedef struct of_block_literal_t {
29 void (*invoke)(
void *block, ...);
30 struct of_block_descriptor_t {
31 unsigned long reserved;
33 void (*copy_helper)(
void *dest,
void *src);
34 void (*dispose_helper)(
void *src);
35 const char *signature;
42 extern void* _Block_copy(
const void*);
43 extern void _Block_release(
const void*);
49 # define Block_copy(...) \
50 ((__typeof__(__VA_ARGS__))_Block_copy((const void*)(__VA_ARGS__)))
53 # define Block_release(...) _Block_release((const void*)(__VA_ARGS__))