Index: src/OFAutoreleasePool.m ================================================================== --- src/OFAutoreleasePool.m +++ src/OFAutoreleasePool.m @@ -118,14 +118,15 @@ [objects add: &obj]; return self; } -- (void)release +- release { [self releaseObjects]; - [super release]; + + return [super release]; } - releaseObjects { size_t i, size; Index: tests/OFAutoreleasePool/OFAutoreleasePool.m ================================================================== --- tests/OFAutoreleasePool/OFAutoreleasePool.m +++ tests/OFAutoreleasePool/OFAutoreleasePool.m @@ -26,11 +26,11 @@ IMP release; @interface TestObject: OFObject - init; - retain; -- (void)release; +- release; @end @implementation TestObject - init { @@ -51,15 +51,15 @@ printf("Retaining %s to " ZD "\n", [self name], [ret retainCount]); return ret; } -- (void)release +- release { printf("Releasing %s to " ZD "\n", [self name], [self retainCount] - 1); - release(self, _cmd); + return release(self, _cmd); } @end int main()