Differences From Artifact [261f53d6e7]:
- File
src/block.h
— part of check-in
[543eb96c02]
at
2016-03-28 23:43:39
on branch trunk
— Style consistency changes
Multiline preprocessor directives now always indent the continued lines
by 4 spaces. The only exception are defines that define to code blocks:
Those are still indented by a tab in order to align with the rest of the
code. (user: js, size: 1393) [annotate] [blame] [check-ins using]
To Artifact [2b08db5321]:
- File
src/block.h
— part of check-in
[30bc1fb225]
at
2017-01-07 23:23:19
on branch trunk
— Override Clang's block declarations on Windows
This is necessary as Clang's implicit declarations for block-related
things are dllimport, while we need dllexport when compiling ObjFW
itself. (user: js, size: 1916) [annotate] [blame] [check-ins using]
| ︙ | |||
37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 | 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 | + + + + + + + + + + + + |
} of_block_literal_t;
#ifdef __cplusplus
extern "C" {
#endif
extern void* _Block_copy(const void*);
extern void _Block_release(const void*);
# if defined(OF_WINDOWS) && defined(OF_COMPILING_OBJFW)
/*
* Clang has implicit declarations for these, but they are dllimport. When
* compiling ObjFW itself, these need to be dllexport.
*/
extern __declspec(dllexport) struct objc_abi_class _NSConcreteStackBlock;
extern __declspec(dllexport) struct objc_abi_class _NSConcreteGlobalBlock;
extern __declspec(dllexport) void _Block_object_assign(void*, const void*,
const int);
extern __declspec(dllexport) void _Block_object_dispose(const void*, const int);
# endif
#ifdef __cplusplus
}
#endif
#ifndef Block_copy
# define Block_copy(...) \
((__typeof__(__VA_ARGS__))_Block_copy((const void*)(__VA_ARGS__)))
#endif
#ifndef Block_release
# define Block_release(...) _Block_release((const void*)(__VA_ARGS__))
#endif
OF_ASSUME_NONNULL_END
|