498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
|
@throw [OFMemoryNotPartOfObjectException newWithClass: isa
pointer: ptr];
}
- retain
{
#ifdef OF_ATOMIC_OPS
of_atomic_inc32(&PRE_IVAR->retain_count);
#else
assert(of_spinlock_lock(&PRE_IVAR->retain_spinlock));
PRE_IVAR->retain_count++;
assert(of_spinlock_unlock(&PRE_IVAR->retain_spinlock));
#endif
return self;
}
- (size_t)retainCount
{
assert(PRE_IVAR->retain_count >= 0);
return (size_t)PRE_IVAR->retain_count;
}
- (void)release
{
#ifdef OF_ATOMIC_OPS
if (of_atomic_dec32(&PRE_IVAR->retain_count) <= 0)
[self dealloc];
#else
size_t c;
assert(of_spinlock_lock(&PRE_IVAR->retain_spinlock));
c = --PRE_IVAR->retain_count;
assert(of_spinlock_unlock(&PRE_IVAR->retain_spinlock));
|
|
|
|
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
|
@throw [OFMemoryNotPartOfObjectException newWithClass: isa
pointer: ptr];
}
- retain
{
#ifdef OF_ATOMIC_OPS
of_atomic_inc_32(&PRE_IVAR->retain_count);
#else
assert(of_spinlock_lock(&PRE_IVAR->retain_spinlock));
PRE_IVAR->retain_count++;
assert(of_spinlock_unlock(&PRE_IVAR->retain_spinlock));
#endif
return self;
}
- (size_t)retainCount
{
assert(PRE_IVAR->retain_count >= 0);
return (size_t)PRE_IVAR->retain_count;
}
- (void)release
{
#ifdef OF_ATOMIC_OPS
if (of_atomic_dec_32(&PRE_IVAR->retain_count) <= 0)
[self dealloc];
#else
size_t c;
assert(of_spinlock_lock(&PRE_IVAR->retain_spinlock));
c = --PRE_IVAR->retain_count;
assert(of_spinlock_unlock(&PRE_IVAR->retain_spinlock));
|