Fix iOS compilation for chromium roll

Fix:
FAILED: obj/examples/socketrocket/SRWebSocket.o
error: block implicitly retains 'self'; explicitly mention 'self' to
indicate this is intended behavior [-Werror,-Wimplicit-retain-self]


Bug: None
Change-Id: I55e6c8ebf81d80669308d9249d42dd158b9a09dd
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/215682
Reviewed-by: Mirko Bonadei <mbonadei@webrtc.org>
Reviewed-by: Peter Hanspers <peterhanspers@webrtc.org>
Reviewed-by: Kári Helgason <kthelgason@webrtc.org>
Commit-Queue: Artem Titov <titovartem@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#33792}
This commit is contained in:
Artem Titov
2021-04-20 12:10:08 +02:00
committed by Commit Bot
parent 63b01e19e9
commit e313c07020

View File

@ -482,16 +482,17 @@ static __strong NSData *CRLFCRLF;
if (_receivedHTTPHeaders == NULL) {
_receivedHTTPHeaders = CFHTTPMessageCreateEmpty(NULL, NO);
}
[self _readUntilHeaderCompleteWithCallback:^(SRWebSocket *self, NSData *data) {
CFHTTPMessageAppendBytes(_receivedHTTPHeaders, (const UInt8 *)data.bytes, data.length);
if (CFHTTPMessageIsHeaderComplete(_receivedHTTPHeaders)) {
SRFastLog(@"Finished reading headers %@", CFBridgingRelease(CFHTTPMessageCopyAllHeaderFields(_receivedHTTPHeaders)));
[self _HTTPHeadersDidFinish];
} else {
[self _readHTTPHeader];
}
[self _readUntilHeaderCompleteWithCallback:^(SRWebSocket *self, NSData *data) {
CFHTTPMessageAppendBytes(self->_receivedHTTPHeaders, (const UInt8 *)data.bytes, data.length);
if (CFHTTPMessageIsHeaderComplete(self->_receivedHTTPHeaders)) {
SRFastLog(@"Finished reading headers %@",
CFBridgingRelease(CFHTTPMessageCopyAllHeaderFields(self->_receivedHTTPHeaders)));
[self _HTTPHeadersDidFinish];
} else {
[self _readHTTPHeader];
}
}];
}
@ -665,8 +666,8 @@ static __strong NSData *CRLFCRLF;
// Need to shunt this on the _callbackQueue first to see if they received any messages
[self _performDelegateBlock:^{
[self closeWithCode:SRStatusCodeProtocolError reason:message];
dispatch_async(_workQueue, ^{
[self _disconnect];
dispatch_async(self->_workQueue, ^{
[self _disconnect];
});
}];
}
@ -675,19 +676,19 @@ static __strong NSData *CRLFCRLF;
{
dispatch_async(_workQueue, ^{
if (self.readyState != SR_CLOSED) {
_failed = YES;
[self _performDelegateBlock:^{
if ([self.delegate respondsToSelector:@selector(webSocket:didFailWithError:)]) {
[self.delegate webSocket:self didFailWithError:error];
}
}];
self->_failed = YES;
[self _performDelegateBlock:^{
if ([self.delegate respondsToSelector:@selector(webSocket:didFailWithError:)]) {
[self.delegate webSocket:self didFailWithError:error];
}
}];
self.readyState = SR_CLOSED;
_selfRetain = nil;
self.readyState = SR_CLOSED;
self->_selfRetain = nil;
SRFastLog(@"Failing with error %@", error.localizedDescription);
[self _disconnect];
SRFastLog(@"Failing with error %@", error.localizedDescription);
[self _disconnect];
}
});
}
@ -735,9 +736,9 @@ static __strong NSData *CRLFCRLF;
{
// Need to pingpong this off _callbackQueue first to make sure messages happen in order
[self _performDelegateBlock:^{
dispatch_async(_workQueue, ^{
[self _sendFrameWithOpcode:SROpCodePong data:pingData];
});
dispatch_async(self->_workQueue, ^{
[self _sendFrameWithOpcode:SROpCodePong data:pingData];
});
}];
}
@ -1013,9 +1014,9 @@ static const uint8_t SRPayloadLenMask = 0x7F;
if (header.masked) {
[self _closeWithProtocolError:@"Client must receive unmasked data"];
}
size_t extra_bytes_needed = header.masked ? sizeof(_currentReadMaskKey) : 0;
size_t extra_bytes_needed = header.masked ? sizeof(self->_currentReadMaskKey) : 0;
if (header.payload_length == 126) {
extra_bytes_needed += sizeof(uint16_t);
} else if (header.payload_length == 127) {
@ -1045,8 +1046,10 @@ static const uint8_t SRPayloadLenMask = 0x7F;
if (header.masked) {
assert(mapped_size >= sizeof(_currentReadMaskOffset) + offset);
memcpy(self->_currentReadMaskKey, ((uint8_t *)mapped_buffer) + offset, sizeof(self->_currentReadMaskKey));
assert(mapped_size >= sizeof(self->_currentReadMaskOffset) + offset);
memcpy(self->_currentReadMaskKey,
((uint8_t *)mapped_buffer) + offset,
sizeof(self->_currentReadMaskKey));
}
[self _handleFrameHeader:header curData:self->_currentFrameData];
@ -1057,16 +1060,16 @@ static const uint8_t SRPayloadLenMask = 0x7F;
- (void)_readFrameNew;
{
dispatch_async(_workQueue, ^{
[_currentFrameData setLength:0];
_currentFrameOpcode = 0;
_currentFrameCount = 0;
_readOpCount = 0;
_currentStringScanPosition = 0;
[self _readFrameContinue];
});
dispatch_async(_workQueue, ^{
[self->_currentFrameData setLength:0];
self->_currentFrameOpcode = 0;
self->_currentFrameCount = 0;
self->_readOpCount = 0;
self->_currentStringScanPosition = 0;
[self _readFrameContinue];
});
}
- (void)_pumpWriting;
@ -1107,7 +1110,10 @@ static const uint8_t SRPayloadLenMask = 0x7F;
if (!_failed) {
[self _performDelegateBlock:^{
if ([self.delegate respondsToSelector:@selector(webSocket:didCloseWithCode:reason:wasClean:)]) {
[self.delegate webSocket:self didCloseWithCode:_closeCode reason:_closeReason wasClean:YES];
[self.delegate webSocket:self
didCloseWithCode:self->_closeCode
reason:self->_closeReason
wasClean:YES];
}
}];
}
@ -1420,10 +1426,10 @@ static const size_t SRFrameHeaderOverhead = 32;
if (self.readyState >= SR_CLOSING) {
return;
}
assert(_readBuffer);
if (self.readyState == SR_CONNECTING && aStream == _inputStream) {
[self didConnect];
assert(self->_readBuffer);
if (self.readyState == SR_CONNECTING && aStream == self->_inputStream) {
[self didConnect];
}
[self _pumpWriting];
[self _pumpScanner];
@ -1434,8 +1440,8 @@ static const size_t SRFrameHeaderOverhead = 32;
SRFastLog(@"NSStreamEventErrorOccurred %@ %@", aStream, [[aStream streamError] copy]);
/// TODO specify error better!
[self _failWithError:aStream.streamError];
_readBufferOffset = 0;
[_readBuffer setLength:0];
self->_readBufferOffset = 0;
[self->_readBuffer setLength:0];
break;
}
@ -1448,17 +1454,22 @@ static const size_t SRFrameHeaderOverhead = 32;
} else {
if (self.readyState != SR_CLOSED) {
self.readyState = SR_CLOSED;
_selfRetain = nil;
self->_selfRetain = nil;
}
if (!_sentClose && !_failed) {
_sentClose = YES;
// If we get closed in this state it's probably not clean because we should be sending this when we send messages
[self _performDelegateBlock:^{
if (!self->_sentClose && !self->_failed) {
self->_sentClose = YES;
// If we get closed in this state it's probably not clean because we should be
// sending this when we send messages
[self
_performDelegateBlock:^{
if ([self.delegate respondsToSelector:@selector(webSocket:didCloseWithCode:reason:wasClean:)]) {
[self.delegate webSocket:self didCloseWithCode:SRStatusCodeGoingAway reason:@"Stream end encountered" wasClean:NO];
[self.delegate webSocket:self
didCloseWithCode:SRStatusCodeGoingAway
reason:@"Stream end encountered"
wasClean:NO];
}
}];
}];
}
}
@ -1469,19 +1480,19 @@ static const size_t SRFrameHeaderOverhead = 32;
SRFastLog(@"NSStreamEventHasBytesAvailable %@", aStream);
const int bufferSize = 2048;
uint8_t buffer[bufferSize];
while (_inputStream.hasBytesAvailable) {
NSInteger bytes_read = [_inputStream read:buffer maxLength:bufferSize];
if (bytes_read > 0) {
[_readBuffer appendBytes:buffer length:bytes_read];
} else if (bytes_read < 0) {
[self _failWithError:_inputStream.streamError];
}
if (bytes_read != bufferSize) {
break;
}
while (self->_inputStream.hasBytesAvailable) {
NSInteger bytes_read = [self->_inputStream read:buffer maxLength:bufferSize];
if (bytes_read > 0) {
[self->_readBuffer appendBytes:buffer length:bytes_read];
} else if (bytes_read < 0) {
[self _failWithError:_inputStream.streamError];
}
if (bytes_read != bufferSize) {
break;
}
};
[self _pumpScanner];
break;