Re: Why is this code leaking memory?
Re: Why is this code leaking memory?
- Subject: Re: Why is this code leaking memory?
- From: Jan Van Boghout <email@hidden>
- Date: Thu, 19 Dec 2002 21:32:24 +0100
I'm beginning to suspect that *both* are leaking, which is even more
awkward. (And I tried adding them to a new autoreleasepool, didn't help)
>
Interesting. What's being leaked -- the data, or the ImageRep? You
>
should post what you sent to me to the list; maybe somebody else has
>
some ideas.
>
>
Dan
>
>
On Thursday, December 19, 2002, at 12:24 PM, Jan Van Boghout wrote:
>
>
> imageData = [[NSData alloc] initWithContentsOfFile:@"/Library/Desktop
>
> Pictures/Aqua Blue.jpg"];
>
>
>
> imageRep = [[NSBitmapImageRep alloc] initWithData:imageData];
>
>
>
> [imageData release];
>
> [imageRep release];
>
>
>
> didn't work either, still leaks. This is not in a loop, it gets
>
> called when I want a new pic and the imageRep of that pic.
>
>
>
>> Not quite answering your original question, but this may provide
>
>> some insight. The "imageRep" object you create is autoreleased, and
>
>> so is the NSData object. Because you did not "alloc" (or copy)
>
>> them, they are temporary, autoreleased objects. So your calling
>
>> release on it is not really what you want to do, because it should
>
>> take care of the releasing for you when you get back to the event
>
>> loop.
>
>>
>
>> Could this be something you are running within a loop, so that the
>
>> autorelease pool doesn't get a chance to clear itself?
>
>>
>
>> It would be a good idea to either surround your code in a new
>
>> autorelease pool, or change your statement to instead explicitly
>
>> alloc/init the NSData and the NSBitmapImageRep objects, and then
>
>> release them when you are done with them. I can't guarantee that
>
>> this will solve the problem, though....
>
>>
>
>> On Thursday, December 19, 2002, at 11:31 AM, Jan Van Boghout wrote:
>
>>
>
>>> Hello everybody,
>
>>>
>
>>> I have two lines that load an imageRep of an image on the HD, and
>
>>> they're leaking memory like hell. Any ideas why this is happening?
>
>>> It
>
>>> shouldn't, that's the problem.
>
>>>
>
>>> Code:
>
>>>
>
>>> imageRep = [NSBitmapImageRep imageRepWithData:[NSData
>
>>> dataWithContentsOfFile:@"/Library/Desktop Pictures/Aqua Blue.jpg"]];
>
>>>
>
>>> [imageRep release];
>
>>>
>
>>> Say I want to load the Aqua Blue desktop pic. *Every* time this gets
>
>>> called my test app's virtual memory usage increases with 3 MB or
>
>>> more,
>
>>> I don't even need to load different pics. Any ideas to prevent this
>
>>> from happening? Shouldn't the release actually release the memory? I
>
>>> also tried creating the data separately and releasing it separately,
>
>>> but that doesn't solve the leak either.
>
>>>
>
>>> All ideas much appreciated,
>
>>>
>
>>> Jan Van Boghout
>
>>> _______________________________________________
>
>>> cocoa-dev mailing list | email@hidden
>
>>> Help/Unsubscribe/Archives:
>
>>> http://www.lists.apple.com/mailman/listinfo/cocoa-dev
>
>>> Do not post admin requests to the list. They will be ignored.
>
>>>
>
>>>
>
>>
>
>> --
>
>> Dan Wood
>
>> Karelia Software, LLC
>
>> email@hidden
>
>> http://www.karelia.com/
>
>> Watson for Mac OS X: http://www.karelia.com/watson/
>
>> _______________________________________________
>
>> cocoa-dev mailing list | email@hidden
>
>> Help/Unsubscribe/Archives:
>
>> http://www.lists.apple.com/mailman/listinfo/cocoa-dev
>
>> Do not post admin requests to the list. They will be ignored.
>
>>
>
>>
>
>>
>
>
--
>
Dan Wood
>
Karelia Software, LLC
>
email@hidden
>
http://www.karelia.com/
>
Watson for Mac OS X: http://www.karelia.com/watson/
>
>
The information contained in this message or any of its attachments
>
may be privileged and confidential and intended for the exclusive use
>
of the addressee(s). Any disclosure, reproduction, distribution or
>
other dissemination or use of this communication is strictly
>
prohibited.
_______________________________________________
cocoa-dev mailing list | email@hidden
Help/Unsubscribe/Archives:
http://www.lists.apple.com/mailman/listinfo/cocoa-dev
Do not post admin requests to the list. They will be ignored.