13
14
15
16
17
18
19
20
21
22
23
24
25
26
|
#ifdef OF_OBJFW_RUNTIME
# import <objfw-rt.h>
#else
# import <objc/objc.h>
#endif
typedef struct __of_block_literal {
Class isa;
int flags;
int reserved;
void (*invoke)(void *, ...);
struct __of_block_descriptor {
unsigned long reserved;
|
>
|
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
|
#ifdef OF_OBJFW_RUNTIME
# import <objfw-rt.h>
#else
# import <objc/objc.h>
#endif
/// \cond internal
typedef struct __of_block_literal {
Class isa;
int flags;
int reserved;
void (*invoke)(void *, ...);
struct __of_block_descriptor {
unsigned long reserved;
|
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
|
enum {
OF_BLOCK_FIELD_IS_OBJECT = 3,
OF_BLOCK_FIELD_IS_BLOCK = 7,
OF_BLOCK_FIELD_IS_BYREF = 8,
OF_BLOCK_FIELD_IS_WEAK = 16,
OF_BLOCK_BYREF_CALLER = 128,
};
extern void* _Block_copy(const void*);
extern void _Block_release(const void*);
#ifndef Block_copy
# define Block_copy(x) ((__typeof__(x))_Block_copy((const void*)(x)))
#endif
#ifndef Block_release
# define Block_release(x) _Block_release((const void*)(x))
#endif
@interface OFBlock
{
Class isa;
}
- copy;
- (void)release;
- autorelease;
@end
@interface OFStackBlock: OFBlock
@end
@interface OFGlobalBlock: OFBlock
@end
@interface OFMallocBlock: OFBlock
@end
|
>
>
>
|
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
|
enum {
OF_BLOCK_FIELD_IS_OBJECT = 3,
OF_BLOCK_FIELD_IS_BLOCK = 7,
OF_BLOCK_FIELD_IS_BYREF = 8,
OF_BLOCK_FIELD_IS_WEAK = 16,
OF_BLOCK_BYREF_CALLER = 128,
};
/// \endcond
extern void* _Block_copy(const void*);
extern void _Block_release(const void*);
#ifndef Block_copy
# define Block_copy(x) ((__typeof__(x))_Block_copy((const void*)(x)))
#endif
#ifndef Block_release
# define Block_release(x) _Block_release((const void*)(x))
#endif
/// \cond internal
@interface OFBlock
{
Class isa;
}
- copy;
- (void)release;
- autorelease;
@end
@interface OFStackBlock: OFBlock
@end
@interface OFGlobalBlock: OFBlock
@end
@interface OFMallocBlock: OFBlock
@end
/// \endcond
|