On 7 Jan 2013, at 22:50, Pirmin Braun <[email protected]> wrote: > Am Mon, 7 Jan 2013 22:28:13 +0000 > schrieb Tom Davie <[email protected]> : > >> Instead, simply try to reduce this to a simple test case in which the string >> is not deallocated, yet all autorelease pools have been popped, and all >> allocs/retains balanced. >> > > ok, here I've got a simple test: > svn checkout -r HEAD --no-auth-cache > svn://svn.intars.at/intars/Local/Projects/TestTool --username anonsvn > --password 'intars' > cd TestTool > make install > > cd /usr/GNUstep/Local/Tools > ./TestTool > > -> 2013-01-07 23:49:17.336 TestTool[23179] TestTool: first has retainCount of > 2 > > > wheras on WO windows it says >> Running 'TestTool.exe'... > Jan 07 23:35:45 TestTool[300] TestTool: first has retainCount of 1 >> Finished running 'TestTool.exe'. > > > the .m looks like this: > #import <Foundation/Foundation.h> > > int > main(int argc, char **argv) > { > NSString *s = @"first|second|third",*s1; > NSArray *a; > NSAutoreleasePool *pool =[NSAutoreleasePool new]; > > a = [s componentsSeparatedByString:@"|"]; > s1 = [a objectAtIndex:0]; > > NSLog(([NSString stringWithFormat:@"TestTool: %@ has retainCount of > %i",s1,[s1 retainCount]])); > > [pool release]; > exit (0); > return 0; > }
This test is not demonstrating anything beyond a different implementation of componentsSeparatedByString:. s1 is retained by *at least* a, it may also (and likely is) be retained by the autoreleasepool until it is drained. Now try retaining s1, and logging the retain count after the autoreleasepool drain. Thanks Tom Davie _______________________________________________ Gnustep-dev mailing list [email protected] https://lists.gnu.org/mailman/listinfo/gnustep-dev
