30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
|
@interface OFNumber ()
+ (instancetype)of_alloc;
- (OFString *)
of_JSONRepresentationWithOptions: (OFJSONRepresentationOptions)options
depth: (size_t)depth;
@end
@interface OFNumberPlaceholder: OFNumber
@end
@interface OFNumberSingleton: OFNumber
@end
#ifdef OF_OBJFW_RUNTIME
enum Tag {
|
|
|
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
|
@interface OFNumber ()
+ (instancetype)of_alloc;
- (OFString *)
of_JSONRepresentationWithOptions: (OFJSONRepresentationOptions)options
depth: (size_t)depth;
@end
@interface OFPlaceholderNumber: OFNumber
@end
@interface OFNumberSingleton: OFNumber
@end
#ifdef OF_OBJFW_RUNTIME
enum Tag {
|
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
|
case 'd':
return true;
default:
return false;
}
}
@implementation OFNumberPlaceholder
- (instancetype)initWithBool: (bool)value
{
if (value) {
static OFOnceControl onceControl = OFOnceControlInitValue;
OFOnce(&onceControl, trueNumberInit);
return (id)trueNumber;
} else {
|
|
|
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
|
case 'd':
return true;
default:
return false;
}
}
@implementation OFPlaceholderNumber
- (instancetype)initWithBool: (bool)value
{
if (value) {
static OFOnceControl onceControl = OFOnceControlInitValue;
OFOnce(&onceControl, trueNumberInit);
return (id)trueNumber;
} else {
|
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
|
@implementation OFNumber
+ (void)initialize
{
if (self != [OFNumber class])
return;
object_setClass((id)&placeholder, [OFNumberPlaceholder class]);
#ifdef OF_OBJFW_RUNTIME
numberTag =
objc_registerTaggedPointerClass([OFTaggedPointerNumber class]);
#endif
}
|
|
|
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
|
@implementation OFNumber
+ (void)initialize
{
if (self != [OFNumber class])
return;
object_setClass((id)&placeholder, [OFPlaceholderNumber class]);
#ifdef OF_OBJFW_RUNTIME
numberTag =
objc_registerTaggedPointerClass([OFTaggedPointerNumber class]);
#endif
}
|