summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJoel Fischer <joeljfischer@gmail.com>2018-01-09 11:59:40 -0500
committerJoel Fischer <joeljfischer@gmail.com>2018-01-09 11:59:40 -0500
commit9459f8ca6a1ce4b95c3845837d93770baf9562e8 (patch)
tree43b3352643e4ea3c2952edc7e780cd0d79a30865
parent3cdbf271dfb339e13a12d55e8b9978f87fc2474e (diff)
downloadsdl_ios-9459f8ca6a1ce4b95c3845837d93770baf9562e8.tar.gz
Fix implicit retains of selfbugs/issue_840_fix_implicit_retains
-rw-r--r--SmartDeviceLink/SDLTCPTransport.m6
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);