• 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
Re: Why is this code leaking memory?
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

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.

  • Follow-Ups:
    • Re: Why is this code leaking memory?
      • From: Andrew Pinski <email@hidden>
  • Prev by Date: Antw.: Why is this code leaking memory?
  • Next by Date: set text on another application's window
  • Previous by thread: Re: Why is this code leaking memory?
  • Next by thread: Re: Why is this code leaking memory?
  • Index(es):
    • Date
    • Thread