diff options
author | Joel Fischer <joeljfischer@gmail.com> | 2018-01-09 11:59:40 -0500 |
---|---|---|
committer | Joel Fischer <joeljfischer@gmail.com> | 2018-01-09 11:59:40 -0500 |
commit | 9459f8ca6a1ce4b95c3845837d93770baf9562e8 (patch) | |
tree | 43b3352643e4ea3c2952edc7e780cd0d79a30865 | |
parent | 3cdbf271dfb339e13a12d55e8b9978f87fc2474e (diff) | |
download | sdl_ios-9459f8ca6a1ce4b95c3845837d93770baf9562e8.tar.gz |
Fix implicit retains of selfbugs/issue_840_fix_implicit_retains
-rw-r--r-- | SmartDeviceLink/SDLTCPTransport.m | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/SmartDeviceLink/SDLTCPTransport.m b/SmartDeviceLink/SDLTCPTransport.m index 99e46074c..920af4d38 100644 --- a/SmartDeviceLink/SDLTCPTransport.m +++ b/SmartDeviceLink/SDLTCPTransport.m @@ -46,7 +46,9 @@ static void TCPCallback(CFSocketRef socket, CFSocketCallBackType type, CFDataRef } - (void)connect { + __weak typeof(self) weakself = self; [[NSOperationQueue mainQueue] addOperationWithBlock:^{ + __strong typeof(self) strongself = weakself; SDLLogD(@"Attemping to connect"); int sock_fd = call_socket([self.hostName UTF8String], [self.portNumber UTF8String]); @@ -56,8 +58,8 @@ static void TCPCallback(CFSocketRef socket, CFSocketCallBackType type, CFDataRef } CFSocketContext socketCtxt = {0, (__bridge void *)(self), NULL, NULL, NULL}; - socket = CFSocketCreateWithNative(kCFAllocatorDefault, sock_fd, kCFSocketDataCallBack | kCFSocketConnectCallBack, (CFSocketCallBack)&TCPCallback, &socketCtxt); - CFRunLoopSourceRef source = CFSocketCreateRunLoopSource(kCFAllocatorDefault, socket, 0); + strongself->socket = CFSocketCreateWithNative(kCFAllocatorDefault, sock_fd, kCFSocketDataCallBack | kCFSocketConnectCallBack, (CFSocketCallBack)&TCPCallback, &socketCtxt); + CFRunLoopSourceRef source = CFSocketCreateRunLoopSource(kCFAllocatorDefault, strongself->socket, 0); CFRunLoopRef loop = CFRunLoopGetCurrent(); CFRunLoopAddSource(loop, source, kCFRunLoopDefaultMode); CFRelease(source); |