979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
|
assert(PRE_IVARS->retainCount >= 0);
return PRE_IVARS->retainCount;
}
- (void)release
{
#if defined(OF_HAVE_ATOMIC_OPS)
if (of_atomic_int_dec(&PRE_IVARS->retainCount) <= 0)
[self dealloc];
#else
size_t c;
OF_ENSURE(of_spinlock_lock(&PRE_IVARS->retainCountSpinlock));
c = --PRE_IVARS->retainCount;
OF_ENSURE(of_spinlock_unlock(&PRE_IVARS->retainCountSpinlock));
|
>
>
|
>
>
>
|
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
|
assert(PRE_IVARS->retainCount >= 0);
return PRE_IVARS->retainCount;
}
- (void)release
{
#if defined(OF_HAVE_ATOMIC_OPS)
of_memory_barrier_release();
if (of_atomic_int_dec(&PRE_IVARS->retainCount) <= 0) {
of_memory_barrier_acquire();
[self dealloc];
}
#else
size_t c;
OF_ENSURE(of_spinlock_lock(&PRE_IVARS->retainCountSpinlock));
c = --PRE_IVARS->retainCount;
OF_ENSURE(of_spinlock_unlock(&PRE_IVARS->retainCountSpinlock));
|