@@ -18,28 +18,26 @@ #import "OFXMLElement.h" #import "OFXMLElement+Serialization.h" #import "OFSerialization.h" #import "OFString.h" -#import "OFAutoreleasePool.h" #import "OFInvalidArgumentException.h" #import "OFNotImplementedException.h" +#import "autorelease.h" #import "macros.h" int _OFXMLElement_Serialization_reference; @implementation OFXMLElement (Serialization) - (id)objectByDeserializing { - OFAutoreleasePool *pool; + void *pool = objc_autoreleasePoolPush(); Class class; id object; - pool = [[OFAutoreleasePool alloc] init]; - if ((class = objc_lookUpClass([name cStringWithEncoding: OF_STRING_ENCODING_ASCII])) == Nil) @throw [OFNotImplementedException exceptionWithClass: Nil]; if (![class conformsToProtocol: @protocol(OFSerialization)]) @@ -47,10 +45,10 @@ exceptionWithClass: class selector: @selector(initWithSerialization:)]; object = [[class alloc] initWithSerialization: self]; - [pool release]; + objc_autoreleasePoolPop(pool); return [object autorelease]; } @end