Fixed implicit-retain-self warnings

This commit is contained in:
Pierre-Olivier Latour
2019-01-03 17:14:50 -08:00
parent 0a7d185417
commit 03fae468d1
3 changed files with 79 additions and 80 deletions

View File

@ -236,20 +236,20 @@ static void _ExecuteMainThreadRunLoopSources() {
- (void)willStartConnection:(GCDWebServerConnection*)connection {
dispatch_sync(_syncQueue, ^{
GWS_DCHECK(_activeConnections >= 0);
if (_activeConnections == 0) {
GWS_DCHECK(self->_activeConnections >= 0);
if (self->_activeConnections == 0) {
dispatch_async(dispatch_get_main_queue(), ^{
if (_disconnectTimer) {
CFRunLoopTimerInvalidate(_disconnectTimer);
CFRelease(_disconnectTimer);
_disconnectTimer = NULL;
if (self->_disconnectTimer) {
CFRunLoopTimerInvalidate(self->_disconnectTimer);
CFRelease(self->_disconnectTimer);
self->_disconnectTimer = NULL;
}
if (_connected == NO) {
if (self->_connected == NO) {
[self _didConnect];
}
});
}
_activeConnections += 1;
self->_activeConnections += 1;
});
}
@ -288,22 +288,22 @@ static void _ExecuteMainThreadRunLoopSources() {
- (void)didEndConnection:(GCDWebServerConnection*)connection {
dispatch_sync(_syncQueue, ^{
GWS_DCHECK(_activeConnections > 0);
_activeConnections -= 1;
if (_activeConnections == 0) {
GWS_DCHECK(self->_activeConnections > 0);
self->_activeConnections -= 1;
if (self->_activeConnections == 0) {
dispatch_async(dispatch_get_main_queue(), ^{
if ((_disconnectDelay > 0.0) && (_source4 != NULL)) {
if (_disconnectTimer) {
CFRunLoopTimerInvalidate(_disconnectTimer);
CFRelease(_disconnectTimer);
if ((self->_disconnectDelay > 0.0) && (self->_source4 != NULL)) {
if (self->_disconnectTimer) {
CFRunLoopTimerInvalidate(self->_disconnectTimer);
CFRelease(self->_disconnectTimer);
}
_disconnectTimer = CFRunLoopTimerCreateWithHandler(kCFAllocatorDefault, CFAbsoluteTimeGetCurrent() + _disconnectDelay, 0.0, 0, 0, ^(CFRunLoopTimerRef timer) {
self->_disconnectTimer = CFRunLoopTimerCreateWithHandler(kCFAllocatorDefault, CFAbsoluteTimeGetCurrent() + self->_disconnectDelay, 0.0, 0, 0, ^(CFRunLoopTimerRef timer) {
GWS_DCHECK([NSThread isMainThread]);
[self _didDisconnect];
CFRelease(_disconnectTimer);
_disconnectTimer = NULL;
CFRelease(self->_disconnectTimer);
self->_disconnectTimer = NULL;
});
CFRunLoopAddTimer(CFRunLoopGetMain(), _disconnectTimer, kCFRunLoopCommonModes);
CFRunLoopAddTimer(CFRunLoopGetMain(), self->_disconnectTimer, kCFRunLoopCommonModes);
} else {
[self _didDisconnect];
}
@ -473,7 +473,7 @@ static inline NSString* _EncodeBase64(NSString* string) {
GWS_LOG_DEBUG(@"Did close %s listening socket %i", isIPv6 ? "IPv6" : "IPv4", listeningSocket);
}
}
dispatch_group_leave(_sourceGroup);
dispatch_group_leave(self->_sourceGroup);
});
dispatch_source_set_event_handler(source, ^{
@autoreleasepool {
@ -496,7 +496,7 @@ static inline NSString* _EncodeBase64(NSString* string) {
int noSigPipe = 1;
setsockopt(socket, SOL_SOCKET, SO_NOSIGPIPE, &noSigPipe, sizeof(noSigPipe)); // Make sure this socket cannot generate SIG_PIPE
GCDWebServerConnection* connection = [(GCDWebServerConnection*)[_connectionClass alloc] initWithServer:self localAddress:localAddress remoteAddress:remoteAddress socket:socket]; // Connection will automatically retain itself while opened
GCDWebServerConnection* connection = [(GCDWebServerConnection*)[self->_connectionClass alloc] initWithServer:self localAddress:localAddress remoteAddress:remoteAddress socket:socket]; // Connection will automatically retain itself while opened
[connection self]; // Prevent compiler from complaining about unused variable / useless statement
} else {
GWS_LOG_ERROR(@"Failed accepting %s socket: %s (%i)", isIPv6 ? "IPv6" : "IPv4", strerror(errno), errno);
@ -552,14 +552,14 @@ static inline NSString* _EncodeBase64(NSString* string) {
_authenticationBasicAccounts = [[NSMutableDictionary alloc] init];
NSDictionary* accounts = _GetOption(_options, GCDWebServerOption_AuthenticationAccounts, @{});
[accounts enumerateKeysAndObjectsUsingBlock:^(NSString* username, NSString* password, BOOL* stop) {
[_authenticationBasicAccounts setObject:_EncodeBase64([NSString stringWithFormat:@"%@:%@", username, password]) forKey:username];
[self->_authenticationBasicAccounts setObject:_EncodeBase64([NSString stringWithFormat:@"%@:%@", username, password]) forKey:username];
}];
} else if ([authenticationMethod isEqualToString:GCDWebServerAuthenticationMethod_DigestAccess]) {
_authenticationRealm = [(NSString*)_GetOption(_options, GCDWebServerOption_AuthenticationRealm, _serverName) copy];
_authenticationDigestAccounts = [[NSMutableDictionary alloc] init];
NSDictionary* accounts = _GetOption(_options, GCDWebServerOption_AuthenticationAccounts, @{});
[accounts enumerateKeysAndObjectsUsingBlock:^(NSString* username, NSString* password, BOOL* stop) {
[_authenticationDigestAccounts setObject:GCDWebServerComputeMD5Digest(@"%@:%@:%@", username, _authenticationRealm, password) forKey:username];
[self->_authenticationDigestAccounts setObject:GCDWebServerComputeMD5Digest(@"%@:%@:%@", username, self->_authenticationRealm, password) forKey:username];
}];
}
_connectionClass = _GetOption(_options, GCDWebServerOption_ConnectionClass, [GCDWebServerConnection class]);
@ -624,7 +624,7 @@ static inline NSString* _EncodeBase64(NSString* string) {
GWS_LOG_INFO(@"%@ started on port %i and reachable at %@", [self class], (int)_port, self.serverURL);
if ([_delegate respondsToSelector:@selector(webServerDidStart:)]) {
dispatch_async(dispatch_get_main_queue(), ^{
[_delegate webServerDidStart:self];
[self->_delegate webServerDidStart:self];
});
}
@ -685,10 +685,10 @@ static inline NSString* _EncodeBase64(NSString* string) {
_authenticationDigestAccounts = nil;
dispatch_async(dispatch_get_main_queue(), ^{
if (_disconnectTimer) {
CFRunLoopTimerInvalidate(_disconnectTimer);
CFRelease(_disconnectTimer);
_disconnectTimer = NULL;
if (self->_disconnectTimer) {
CFRunLoopTimerInvalidate(self->_disconnectTimer);
CFRelease(self->_disconnectTimer);
self->_disconnectTimer = NULL;
[self _didDisconnect];
}
});
@ -696,7 +696,7 @@ static inline NSString* _EncodeBase64(NSString* string) {
GWS_LOG_INFO(@"%@ stopped", [self class]);
if ([_delegate respondsToSelector:@selector(webServerDidStop:)]) {
dispatch_async(dispatch_get_main_queue(), ^{
[_delegate webServerDidStop:self];
[self->_delegate webServerDidStop:self];
});
}
}