82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
|
withMethodFromClass: [TestObject class]];
release = [OFObject replaceMethod: @selector(release)
withMethodFromClass: [TestObject class]];
OFObject *o1, *o2, *o3;
OFAutoreleasePool *pool1, *pool2;
o1 = [[OFObject new] autorelease];
pool1 = [OFAutoreleasePool new];
o2 = [[OFObject new] autorelease];
[pool1 releaseObjects];
o2 = [[OFObject new] autorelease];
pool2 = [OFAutoreleasePool new];
o3 = [[OFObject new] autorelease];
[pool1 retain];
[pool1 release];
[pool1 release];
[o3 free];
return (inits == 12 && retains == 1 && releases == 6 ? 0 : 1);
}
|
|
|
|
|
|
|
|
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
|
withMethodFromClass: [TestObject class]];
release = [OFObject replaceMethod: @selector(release)
withMethodFromClass: [TestObject class]];
OFObject *o1, *o2, *o3;
OFAutoreleasePool *pool1, *pool2;
o1 = [[[OFObject alloc] init] autorelease];
pool1 = [[OFAutoreleasePool alloc] init];
o2 = [[[OFObject alloc] init] autorelease];
[pool1 releaseObjects];
o2 = [[[OFObject alloc] init] autorelease];
pool2 = [[OFAutoreleasePool alloc] init];
o3 = [[[OFObject alloc] init] autorelease];
[pool1 retain];
[pool1 release];
[pool1 release];
[o3 free];
return (inits == 12 && retains == 1 && releases == 6 ? 0 : 1);
}
|