ObjFW  Diff

Differences From Artifact [383899c068]:

To Artifact [8a28a2dbc7]:


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




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

extern void* _Block_copy(const void*);
extern void _Block_release(const void*);
@interface OFStackBlock: OFBlock
@end

#ifndef Block_copy
@interface OFGlobalBlock: OFBlock
# 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
@end

@interface OFMallocBlock: OFBlock
@end