@@ -18,13 +18,14 @@ #include #import "OFMutableSet.h" #import "OFMutableSet_hashtable.h" -#import "OFAutoreleasePool.h" #import "OFNotImplementedException.h" + +#import "autorelease.h" static struct { Class isa; } placeholder; @@ -142,23 +143,23 @@ selector: _cmd]; } - (void)minusSet: (OFSet*)set { - OFAutoreleasePool *pool = [[OFAutoreleasePool alloc] init]; + void *pool = objc_autoreleasePoolPush(); OFEnumerator *enumerator = [set objectEnumerator]; id object; while ((object = [enumerator nextObject]) != nil) [self removeObject: object]; - [pool release]; + objc_autoreleasePoolPop(pool); } - (void)intersectSet: (OFSet*)set { - OFAutoreleasePool *pool = [[OFAutoreleasePool alloc] init]; + void *pool = objc_autoreleasePoolPush(); size_t count = [self count]; id *cArray; cArray = [self allocMemoryWithSize: sizeof(id) count: count]; @@ -178,24 +179,24 @@ [self removeObject: cArray[i]]; } @finally { [self freeMemory: cArray]; } - [pool release]; + objc_autoreleasePoolPop(pool); } - (void)unionSet: (OFSet*)set { - OFAutoreleasePool *pool = [[OFAutoreleasePool alloc] init]; + void *pool = objc_autoreleasePoolPush(); OFEnumerator *enumerator = [set objectEnumerator]; id object; while ((object = [enumerator nextObject]) != nil) [self addObject: object]; - [pool release]; + objc_autoreleasePoolPop(pool); } - (void)makeImmutable { } @end