@@ -25,29 +25,31 @@ return [[[self alloc] initWithItemSize: is] autorelease]; } - init { - @throw [OFNotImplementedException newWithClass: isa + Class c = isa; + [self release]; + @throw [OFNotImplementedException newWithClass: c selector: _cmd]; } - initWithItemSize: (size_t)is { - Class c; - self = [super init]; - if (is == 0) { - c = isa; - [super dealloc]; - @throw [OFInvalidArgumentException newWithClass: c - selector: _cmd]; - } - - data = NULL; - itemSize = is; + @try { + if (is == 0) + @throw [OFInvalidArgumentException newWithClass: isa + selector: _cmd]; + + data = NULL; + itemSize = is; + } @catch (id e) { + [self release]; + @throw e; + } return self; } - (size_t)count