On Sun, Oct 26, 2008 at 7:39 PM, Adam R. Maxwell <[EMAIL PROTECTED]> wrote: > > On Oct 26, 2008, at 2:47 PM, Kyle Sluder wrote: > >> And I've already noticed a memory management error in my own code; >> -setServers: leaks the old array. The first lines of the -setServers: >> method should look like this: >> >> -(void)setServers:(NSArray *)newServers >> { >> NSArray *oldServers = servers; >> servers = [[newServers copy] retain]; >> [oldServers release]; >> >> // ... the rest of the method ... >> } > > This still leaks, since you copy the parameter and then retain the copy.
Yes it does, because -copy implicitly retains the sender. My mistake. (That's why we disclaim Mail-written code, after all!) So you can remove the call to -retain: -(void)setServers:(NSArray *)newServers { NSArray *oldServers = servers; servers = [newServers copy]; [oldServers release]; // ... method continues... } --Kyle Sluder _______________________________________________ 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 [EMAIL PROTECTED]