That's exactly what Jerry just suggested was happening, however the documentation implies that it's implemented more like
-(oneway void)release { self->retainCount--; if (0 == self->retainCount) [self dealloc]; } But it doesn't really matter since you should never be calling dealloc except from release or dealloc (as [super dealloc];) anyway. -Daniel On Aug 23, 2010, at 6:47 PM, Gary L. Wade wrote: > Have you considered that the code for -release may be implemented in a > manner like this? > > -(oneway void)release > { > if (1 == self->retainCount) > { > // Let's save a few CPU cycles and not bother > // decrementing retainCount since it won't be > // around for long. > [self dealloc]; > } > else > { > self->retainCount--; > } > } > > On 08/23/2010 6:35 PM, "Jerry Krinock" <je...@ieee.org> wrote: > >> Kind of late in the decade for this, but anyhow, the documentation for >> -release says: >> >> - (oneway void)release >> Decrements the receiver’s reference count. >> Discussion. The receiver is sent a dealloc message when its reference >> count reaches 0. >> >> So it's always bothered me that if I override -dealloc and log the >> retainCount >> on the way in, it is 1, not 0. >> >> Upon doing some experiments, I believe that the first sentence in that >> documentation is wrong. It should say this instead: >> >> If the receiver's retainCount is greater than 1, decrements it. Otherwise, >> invokes -dealloc. >> >> Reading the document Memory Management Programming Guide ▸ Object Ownership >> and Disposal, one gets a similar false impression, although this document is >> vague enough that it is only misleading, not wrong. >> >> OK, someone tell me why I'm wrong about this >> :) > > _______________________________________________ Cocoa-dev mailing list (Cocoa-dev@lists.apple.com) Please do not post admin requests or moderator comments to the list. Contact the moderators at cocoa-dev-admins(at)lists.apple.com Help/Unsubscribe/Update your Subscription: http://lists.apple.com/mailman/options/cocoa-dev/archive%40mail-archive.com This email sent to arch...@mail-archive.com