From fc22d6d5be022284dbd732e68b3b3f538b30a96e Mon Sep 17 00:00:00 2001 From: rfm Date: Mon, 14 Jan 2013 06:35:23 +0000 Subject: [PATCH] avoid buildup of large autorelease pool as suggested by Fred git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@35965 72102866-910b-0410-8b05-ffd578937521 --- Source/NSString.m | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/Source/NSString.m b/Source/NSString.m index 9a54245a8..8147b549a 100644 --- a/Source/NSString.m +++ b/Source/NSString.m @@ -1823,11 +1823,13 @@ static UCollator *GSICUCollatorOpen(NSStringCompareOptions mask, NSLocale *local NSRange complete; NSRange found; NSMutableArray *array; + IF_NO_GC(NSAutoreleasePool *pool; NSUInteger count;) if (separator == nil) [NSException raise: NSInvalidArgumentException format: @"separator is nil"]; array = [NSMutableArray array]; + IF_NO_GC(pool = [NSAutoreleasePool new]; count = 0;) search = NSMakeRange (0, [self length]); complete = search; found = [self rangeOfCharacterFromSet: separator]; @@ -1844,10 +1846,11 @@ static UCollator *GSICUCollatorOpen(NSStringCompareOptions mask, NSLocale *local found = [self rangeOfCharacterFromSet: separator options: 0 range: search]; + IF_NO_GC(if (0 == count % 200) [pool emptyPool];) } // Add the last search string range [array addObject: [self substringWithRange: search]]; - + IF_NO_GC([pool release];) // FIXME: Need to make mutable array into non-mutable array? return array; }