From c5849bb8ddafcc21d1ad0a492945234d94e755d7 Mon Sep 17 00:00:00 2001 From: Richard Frith-Macdonald Date: Thu, 29 Jul 2004 10:54:55 +0000 Subject: [PATCH] Fix for inefficiency/leak in emptyPool git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@19789 72102866-910b-0410-8b05-ffd578937521 --- ChangeLog | 5 +++++ Source/NSAutoreleasePool.m | 4 +++- 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/ChangeLog b/ChangeLog index 3a33f8533..6ad86f960 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,8 @@ +2004-07-29 Richard Frith-Macdonald + + * Source/NSAutoreleasePool.m: ([emptyPool]) reset _released ivar + suggested by Cristobal Castillo + 2004-07-28 Willem Rein Oudshoorn * Source/GSFileHandle.m ([GSFileHandle -gcFinalize]): if __MINGW__ also diff --git a/Source/NSAutoreleasePool.m b/Source/NSAutoreleasePool.m index cae014bcf..13f2c1af6 100644 --- a/Source/NSAutoreleasePool.m +++ b/Source/NSAutoreleasePool.m @@ -374,7 +374,6 @@ static IMP initImp; - (void) emptyPool { struct autorelease_array_list *released; - unsigned int i; if (_child) { @@ -384,6 +383,8 @@ static IMP initImp; released = _released_head; while (released) { + unsigned int i; + for (i = 0; i < released->count; i++) { id anObject = released->objects[i]; @@ -393,6 +394,7 @@ static IMP initImp; released->count = 0; released = released->next; } + _released = _released_head; } - (void) _reallyDealloc