Index: src/OFStreamObserver.m ================================================================== --- src/OFStreamObserver.m +++ src/OFStreamObserver.m @@ -40,10 +40,12 @@ #import "OFAutoreleasePool.h" #import "OFInitializationFailedException.h" #import "OFOutOfRangeException.h" +#import "macros.h" + #ifdef _WIN32 # define close(sock) closesocket(sock) #endif enum { @@ -153,18 +155,16 @@ [super dealloc]; } - (id )delegate { - return [[(id)delegate retain] autorelease]; + OF_GETTER(delegate, YES) } - (void)setDelegate: (id )delegate_ { - [(id)delegate_ retain]; - [(id)delegate release]; - delegate = delegate_; + OF_SETTER(delegate, delegate_, YES, NO) } #ifdef OF_HAVE_POLL - (void)_addStream: (OFStream*)stream withEvents: (short)events Index: src/macros.h ================================================================== --- src/macros.h +++ src/macros.h @@ -69,11 +69,11 @@ # define OF_PATH_DELIM '/' #else # define OF_PATH_DELIM '\\' #endif -#define OF_IVAR_OFFSET(ivar) ((char*)&ivar - (char*)self) +#define OF_IVAR_OFFSET(ivar) ((intptr_t)&ivar - (intptr_t)self) #define OF_GETTER(ivar, atomic) \ return objc_getProperty(self, _cmd, OF_IVAR_OFFSET(ivar), atomic); #define OF_SETTER(ivar, value, atomic, copy) \ objc_setProperty(self, _cmd, OF_IVAR_OFFSET(ivar), value, atomic, copy);