18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
|
#define __OBJFW_RUNTIME_H__
#include <stdint.h>
#include <stdbool.h>
#ifndef __has_feature
# define __has_feature(x) 0
#endif
#if __has_feature(objc_arc)
# define OBJC_UNSAFE_UNRETAINED __unsafe_unretained
#else
# define OBJC_UNSAFE_UNRETAINED
#endif
typedef struct objc_class* Class;
typedef struct objc_object* id;
typedef const struct objc_selector* SEL;
typedef signed char BOOL;
typedef id (*IMP)(id, SEL, ...);
|
>
>
>
>
>
>
>
>
>
>
|
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
|
#define __OBJFW_RUNTIME_H__
#include <stdint.h>
#include <stdbool.h>
#ifndef __has_feature
# define __has_feature(x) 0
#endif
#ifndef __has_attribute
# define __has_attribute(x) 0
#endif
#if __has_feature(objc_arc)
# define OBJC_UNSAFE_UNRETAINED __unsafe_unretained
#else
# define OBJC_UNSAFE_UNRETAINED
#endif
#if __has_attribute(objc_root_class)
# define OBJC_ROOT_CLASS __attribute__((objc_root_class))
#else
# define OBJC_ROOT_CLASS
#endif
typedef struct objc_class* Class;
typedef struct objc_object* id;
typedef const struct objc_selector* SEL;
typedef signed char BOOL;
typedef id (*IMP)(id, SEL, ...);
|
130
131
132
133
134
135
136
137
138
139
140
141
142
143
|
struct objc_property_list {
unsigned count;
struct objc_property_list *next;
struct objc_property properties[1];
};
#ifdef __OBJC__
@interface Protocol
{
@public
#else
typedef struct {
#endif
Class isa;
|
>
|
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
|
struct objc_property_list {
unsigned count;
struct objc_property_list *next;
struct objc_property properties[1];
};
#ifdef __OBJC__
OBJC_ROOT_CLASS
@interface Protocol
{
@public
#else
typedef struct {
#endif
Class isa;
|
204
205
206
207
208
209
210
211
212
|
extern void objc_autoreleasePoolPop(void*);
extern id _objc_rootAutorelease(id);
#ifdef __cplusplus
}
#endif
#undef OBJC_UNSAFE_UNRETAINED
#endif
|
>
|
215
216
217
218
219
220
221
222
223
224
|
extern void objc_autoreleasePoolPop(void*);
extern id _objc_rootAutorelease(id);
#ifdef __cplusplus
}
#endif
#undef OBJC_UNSAFE_UNRETAINED
#undef OBJC_ROOT_CLASS
#endif
|