Index: src/OFAutoreleasePool.m ================================================================== --- src/OFAutoreleasePool.m +++ src/OFAutoreleasePool.m @@ -110,15 +110,14 @@ [obj release]; return self; } -- release +- (void)release { [self releaseObjects]; - - return [super release]; + [super release]; } - releaseObjects { if (objects == nil) Index: src/OFConstString.m ================================================================== --- src/OFConstString.m +++ src/OFConstString.m @@ -29,13 +29,12 @@ - retain { return self; } -- release +- (void)release { - return self; } - (size_t)retainCount { return 1; Index: src/OFObject.h ================================================================== --- src/OFObject.h +++ src/OFObject.h @@ -201,11 +201,11 @@ - (size_t)retainCount; /** * Decreases the retain cound and deallocates the object if it reaches 0. */ -- release; +- (void)release; /** * Deallocates the object and also frees all memory allocated via its memory * pool. */ Index: src/OFObject.m ================================================================== --- src/OFObject.m +++ src/OFObject.m @@ -366,18 +366,14 @@ - (size_t)retainCount { return PRE_IVAR->retain_count; } -- release -{ - if (!--PRE_IVAR->retain_count) { - [self dealloc]; - return nil; - } - - return self; +- (void)release +{ + if (!--PRE_IVAR->retain_count) + [self dealloc]; } - (void)dealloc { void **iter = PRE_IVAR->memchunks + PRE_IVAR->memchunks_size; Index: tests/OFAutoreleasePool/OFAutoreleasePool.m ================================================================== --- tests/OFAutoreleasePool/OFAutoreleasePool.m +++ tests/OFAutoreleasePool/OFAutoreleasePool.m @@ -30,11 +30,11 @@ IMP release; @interface TestObject: OFObject - init; - retain; -- release; +- (void)release; @end @implementation TestObject - init { @@ -59,17 +59,16 @@ printf("Retaining %s to " ZD "\n", [self name], [ret retainCount]); return ret; } -- release +- (void)release { releases++; printf("Releasing %s to " ZD "\n", [self name], [self retainCount] - 1); - - return release(self, _cmd); + release(self, _cmd); } @end int main()