Index: src/OFAutoreleasePool.m ================================================================== --- src/OFAutoreleasePool.m +++ src/OFAutoreleasePool.m @@ -116,15 +116,14 @@ [objects add: &obj]; return self; } -- release +- (void)release { [self releaseObjects]; - - return [super release]; + [super release]; } - releaseObjects { size_t i, size; Index: src/OFObject.h ================================================================== --- src/OFObject.h +++ src/OFObject.h @@ -37,11 +37,11 @@ - retain; /** * Decreases the retain cound and frees the object if it reaches 0. */ -- release; +- (void)release; /** * Adds the object to the autorelease pool that is on top of the thread's stack. */ - autorelease; Index: src/OFObject.m ================================================================== --- src/OFObject.m +++ src/OFObject.m @@ -50,16 +50,14 @@ __retain_count++; return self; } -- release +- (void)release { if (!--__retain_count) - return [self free]; - - return self; + [self free]; } - autorelease { [OFAutoreleasePool addToPool: self]; Index: tests/OFAutoreleasePool/OFAutoreleasePool.m ================================================================== --- tests/OFAutoreleasePool/OFAutoreleasePool.m +++ tests/OFAutoreleasePool/OFAutoreleasePool.m @@ -22,11 +22,11 @@ #endif @interface TestObject: OFObject - init; - retain; -- release; +- (void)release; @end @implementation TestObject - init { @@ -47,11 +47,11 @@ printf("Retaining %s to " ZD "\n", [self name], [ret retainCount]); return ret; } -- release +- (void)release { printf("Releasing %s to " ZD "\n", [self name], [self retainCount] - 1); return [super release]; }