Differences From Artifact [29246596c0]:
- File src/OFIntrospection.h — part of check-in [0509d7a844] at 2019-01-03 19:13:03 on branch trunk — Update copyright (user: js, size: 6222) [annotate] [blame] [check-ins using]
To Artifact [f4fdf94694]:
- File
src/OFIntrospection.h
— part of check-in
[496695d778]
at
2019-09-29 19:35:38
on branch trunk
— Either restrict subclassing or reserve ivar space
This allows ABI stability with the fragile ABI. (user: js, size: 6311) [annotate] [blame] [check-ins using] [more...]
| ︙ | |||
42 43 44 45 46 47 48 49 50 51 52 53 54 55 | 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 | + |
* @brief A class for describing a method.
*/
@interface OFMethod: OFObject
{
SEL _selector;
OFString *_name;
const char *_typeEncoding;
OF_RESERVE_IVARS(4)
}
/*!
* @brief The selector of the method.
*/
@property (readonly, nonatomic) SEL selector;
|
| ︙ | |||
72 73 74 75 76 77 78 79 80 81 82 83 84 85 | 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 | + |
* @brief A class for describing a property.
*/
@interface OFProperty: OFObject
{
OFString *_name;
unsigned int _attributes;
OFString *_Nullable _getter, *_Nullable _setter, *_Nullable _iVar;
OF_RESERVE_IVARS(4)
}
/*!
* @brief The name of the property.
*/
@property (readonly, nonatomic) OFString *name;
|
| ︙ | |||
126 127 128 129 130 131 132 133 134 135 136 137 138 139 | 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 | + |
* @brief A class for describing an instance variable.
*/
@interface OFInstanceVariable: OFObject
{
OFString *_name;
const char *_typeEncoding;
ptrdiff_t _offset;
OF_RESERVE_IVARS(4)
}
/*!
* @brief The name of the instance variable.
*/
@property (readonly, nonatomic) OFString *name;
|
| ︙ | |||
151 152 153 154 155 156 157 158 159 160 161 162 163 164 | 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 | + |
@end
/*!
* @class OFIntrospection OFIntrospection.h ObjFW/OFIntrospection.h
*
* @brief A class for introspecting classes.
*/
OF_SUBCLASSING_RESTRICTED
@interface OFIntrospection: OFObject
{
OFMutableArray OF_GENERIC(OFMethod *) *_classMethods;
OFMutableArray OF_GENERIC(OFMethod *) *_instanceMethods;
OFMutableArray OF_GENERIC(OFProperty *) *_properties;
OFMutableArray OF_GENERIC(OFInstanceVariable *) *_instanceVariables;
}
|
| ︙ |