• Open Menu Close Menu
  • Apple
  • Shopping Bag
  • Apple
  • Mac
  • iPad
  • iPhone
  • Watch
  • TV
  • Music
  • Support
  • Search apple.com
  • Shopping Bag

Lists

Open Menu Close Menu
  • Terms and Conditions
  • Lists hosted on this site
  • Email the Postmaster
  • Tips for posting to public mailing lists
Fwd: Analyser reports memory leak… where?
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

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


  • Follow-Ups:
    • Re: Analyser reports memory leak… where?
      • From: Roland King <email@hidden>
  • Prev by Date: Re: Analyser reports memory leak… where?
  • Next by Date: Re: Analyser reports memory leak… where?
  • Previous by thread: Re: Analyser reports memory leak… where?
  • Next by thread: Re: Analyser reports memory leak… where?
  • Index(es):
    • Date
    • Thread