@@ -28,10 +28,12 @@ #endif #ifdef OF_GNU_RUNTIME # import #endif +#import "atomic.h" + struct pre_ivar { void **memchunks; size_t memchunks_size; size_t retain_count; }; @@ -471,11 +473,11 @@ pointer: ptr]; } - retain { - PRE_IVAR->retain_count++; + of_atomic_inc32(&PRE_IVAR->retain_count); return self; } - (size_t)retainCount @@ -483,11 +485,11 @@ return PRE_IVAR->retain_count; } - (void)release { - if (!--PRE_IVAR->retain_count) + if (!of_atomic_dec32(&PRE_IVAR->retain_count)) [self dealloc]; } - autorelease {