Don't retain the delegate to prevent a reference cycle.

This commit is contained in:
Jonathan Schleifer 2011-10-24 20:32:44 +02:00
parent 5a2f8ac0f4
commit cfb0c5f9bd
2 changed files with 3 additions and 6 deletions

View file

@ -83,7 +83,7 @@
@property (copy) OFString *username, *password, *server, *domain, *resource; @property (copy) OFString *username, *password, *server, *domain, *resource;
@property (copy, readonly) XMPPJID *JID; @property (copy, readonly) XMPPJID *JID;
@property (assign) uint16_t port; @property (assign) uint16_t port;
@property (retain) id <XMPPConnectionDelegate> delegate; @property (assign) id <XMPPConnectionDelegate> delegate;
@property (readonly, retain) XMPPRoster *roster; @property (readonly, retain) XMPPRoster *roster;
@property (readonly, retain, getter=socket) OFTCPSocket *sock; @property (readonly, retain, getter=socket) OFTCPSocket *sock;
@property (assign) BOOL encryptionRequired; @property (assign) BOOL encryptionRequired;

View file

@ -81,7 +81,6 @@
[domain release]; [domain release];
[resource release]; [resource release];
[JID release]; [JID release];
[delegate release];
[authModule release]; [authModule release];
[bindID release]; [bindID release];
[sessionID release]; [sessionID release];
@ -895,14 +894,12 @@
- (void)setDelegate: (id <XMPPConnectionDelegate>)delegate_ - (void)setDelegate: (id <XMPPConnectionDelegate>)delegate_
{ {
id old = delegate; delegate = (id <XMPPConnectionDelegate, OFObject>)delegate_;
delegate = [(id)delegate_ retain];
[old release];
} }
- (id <XMPPConnectionDelegate>)delegate - (id <XMPPConnectionDelegate>)delegate
{ {
return [[delegate retain] autorelease]; return delegate;
} }
- (XMPPRoster*)roster - (XMPPRoster*)roster