Fwd: Analyser reports memory leak… where?
Fwd: Analyser reports memory leak… where?
- Subject: Fwd: Analyser reports memory leak… where?
- From: Bill Cheeseman <email@hidden>
- Date: Thu, 12 Sep 2013 08:00:48 -0400
I neglected to send this to the list. It's important enough that I think I should.
Bill Cheeseman
Begin forwarded message:
> From: Bill Cheeseman <email@hidden>
> Subject: Re: Analyser reports memory leak… where?
> Date: September 12, 2013 6:34:05 AM EDT
> To: Graham Cox <email@hidden>
>
> The -eventTypes method sends the -setEventTypes: message, which retains the object and assigns it to the mEventTypes iVar. Then -eventTypes returns the mEventTypes iVar without autoreleasing it, and -eventTypes doesn't have "new", "copy", or whatever in its name. The release of the eventTypes local variable in -eventTypes only offsets the first retain implicit in the -alloc message in -newEventTypes. The retain count is still +1 at the point where the error is reported.
>
> Bill Cheeseman
>
> On Sep 12, 2013, at 5:35 AM, Graham Cox <email@hidden> wrote:
>
>> Here's some code for which the Analyser reports "potential leak of an object stored into 'eventTypes'". I don't see it.
>>
>> I didn't write this code, so I'm reluctant to change it even though I would have written it a bit differently. mEventTypes is an ivar.
>>
>> - (void)setEventTypes:(NSDictionary*)eventTypes
>> {
>> if (eventTypes != mEventTypes)
>> {
>> [mEventTypes release];
>> mEventTypes = [eventTypes retain];
>> }
>> InitializePrefsForEventTypeNames();
>> }
>>
>> - (NSDictionary*)eventTypes
>> {
>> if (mEventTypes == nil)
>> {
>> [self loadNib];
>>
>> NSDictionary* eventTypes = [self newEventTypes];
>> [self setEventTypes:eventTypes];
>> [eventTypes release];
>> }
>>
>> return mEventTypes; //<----- analyser complains here
>> }
>>
>>
>>
>> - (NSDictionary*)newEventTypes
>> {
>> //[code deleted that presets contents of 'eventTypes']
>>
>> // Method name begins with "new"; clients are responsible for releasing.
>> return [[NSDictionary alloc] initWithDictionary:eventTypes];
>> }
>>
>>
>>
>> --Graham
>> _______________________________________________
>>
>> Cocoa-dev mailing list (email@hidden)
>>
>> 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:
>>
>> This email sent to email@hidden
>
> --
>
> Bill Cheeseman - email@hidden
>
--
Bill Cheeseman - email@hidden
_______________________________________________
Cocoa-dev mailing list (email@hidden)
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:
This email sent to email@hidden