I deleted everything that was between NSImage* tempSource = [[NSImage alloc] initWithContentsOfFile:sPath[i]; and [tempSource release]; so basically this is the code (sPath is a NSString array containing path names):
-(IBAction)Generate:(id)sender
{

for (i = 0; i < count; i++)
                {
NSImage* tempSource = [[NSImage alloc] initWithContentsOfFile:sPath[i]];
        [tempSource release];
}

}

And still the same problem occurs. So the problem is that the memory is not immediately released. You think this can be solved by using an autoreleasepool? I'm pretty new to cocoa programming and i never used autoreleasepools before.
Thank you very much, Yannick



On 29 Apr 2008, at 13:44, Paul Bailey wrote:

Of course, if that's the case, simply wrapping the whole section of code with its own autorelease pool will cause the memory to be released at the end of each iteration.

Paul

On Tue, Apr 29, 2008 at 12:37 PM, Graham Cox <[EMAIL PROTECTED]> wrote: It sounds like something in "some code" is also retaining tempSource (probably autoreleasing it), so that the release at the end of the loop is not actually releasing, but the subsequent release of the autorelease pool at the end of the event is doing so.

So without "some code" it's hard to say what that could be.


G.




On 29 Apr 2008, at 9:30 pm, Yannick De Koninck wrote:
Hi everybody,

I am writing an application where, at some point in time, the user clicks a button and for a great amount of images the average pixel values are calculated and stored in an array.
Basically this looks like this:

-(IBAction)Generate:(id)sender
{

       // some code

for (i = 0; i < count; i++)
               {
NSImage* tempSource = [[NSImage alloc] initWithContentsOfFile:sPath[i]];
       // some code
       [tempSource release];
}

}


When debugging with ObjectAlloc i found that the memory release does not happen when the release message is sent but only after the Generate function is done. So instead of allocating, deallocating, allocating, deallocating... the application keeps allocating memory and only releases it afterwards. This becomes a big problem when the amount of loaded pictures rises. Is there a way to force the memory manager to free the memory when the release message is sent instead of after the call? Or can i solve this problem in another way?
Thank you very much,
Yannick, Belgium
_______________________________________________

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/graham.cox%40bigpond.com

This email sent to [EMAIL PROTECTED]

_______________________________________________

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/bailey%40dreamshake.net

This email sent to [EMAIL PROTECTED]


_______________________________________________

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]

Reply via email to