From dbda969039452c7431f2b0d60cfef0b7e08c0937 Mon Sep 17 00:00:00 2001 From: murgatroid99 Date: Wed, 24 Jun 2015 16:55:55 -0700 Subject: Fixed 'retain cycle' warnings in GRPCWrappedCall.m --- src/objective-c/GRPCClient/private/GRPCWrappedCall.m | 20 ++++++++++++++++---- 1 file changed, 16 insertions(+), 4 deletions(-) (limited to 'src/objective-c/GRPCClient/private') diff --git a/src/objective-c/GRPCClient/private/GRPCWrappedCall.m b/src/objective-c/GRPCClient/private/GRPCWrappedCall.m index 4ccd5723c6..8a556e155b 100644 --- a/src/objective-c/GRPCClient/private/GRPCWrappedCall.m +++ b/src/objective-c/GRPCClient/private/GRPCWrappedCall.m @@ -132,8 +132,12 @@ grpc_metadata_array_init(&_headers); _op.data.recv_initial_metadata = &_headers; if (handler) { + // Prevent reference cycle with handler + __weak typeof(self) weakSelf = self; _handler = ^{ - NSDictionary *metadata = [NSDictionary grpc_dictionaryFromMetadataArray:_headers]; + __strong typeof(self) strongSelf = weakSelf; + NSDictionary *metadata = [NSDictionary + grpc_dictionaryFromMetadataArray:strongSelf->_headers]; handler(metadata); }; } @@ -160,8 +164,11 @@ _op.op = GRPC_OP_RECV_MESSAGE; _op.data.recv_message = &_receivedMessage; if (handler) { + // Prevent reference cycle with handler + __weak typeof(self) weakSelf = self; _handler = ^{ - handler(_receivedMessage); + __strong typeof(self) strongSelf = weakSelf; + handler(strongSelf->_receivedMessage); }; } } @@ -190,9 +197,14 @@ grpc_metadata_array_init(&_trailers); _op.data.recv_status_on_client.trailing_metadata = &_trailers; if (handler) { + // Prevent reference cycle with handler + __weak typeof(self) weakSelf = self; _handler = ^{ - NSError *error = [NSError grpc_errorFromStatusCode:_statusCode details:_details]; - NSDictionary *trailers = [NSDictionary grpc_dictionaryFromMetadataArray:_trailers]; + __strong typeof(self) strongSelf = weakSelf; + NSError *error = [NSError grpc_errorFromStatusCode:strongSelf->_statusCode + details:strongSelf->_details]; + NSDictionary *trailers = [NSDictionary + grpc_dictionaryFromMetadataArray:strongSelf->_trailers]; handler(error, trailers); }; } -- cgit v1.2.3 From 231103ba39303cc713631280deccb3b96d165174 Mon Sep 17 00:00:00 2001 From: murgatroid99 Date: Thu, 25 Jun 2015 10:14:09 -0700 Subject: Fixed name in comments --- src/objective-c/GRPCClient/private/GRPCWrappedCall.m | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) (limited to 'src/objective-c/GRPCClient/private') diff --git a/src/objective-c/GRPCClient/private/GRPCWrappedCall.m b/src/objective-c/GRPCClient/private/GRPCWrappedCall.m index 8a556e155b..d94b25091e 100644 --- a/src/objective-c/GRPCClient/private/GRPCWrappedCall.m +++ b/src/objective-c/GRPCClient/private/GRPCWrappedCall.m @@ -132,7 +132,7 @@ grpc_metadata_array_init(&_headers); _op.data.recv_initial_metadata = &_headers; if (handler) { - // Prevent reference cycle with handler + // Prevent reference cycle with _handler __weak typeof(self) weakSelf = self; _handler = ^{ __strong typeof(self) strongSelf = weakSelf; @@ -164,7 +164,7 @@ _op.op = GRPC_OP_RECV_MESSAGE; _op.data.recv_message = &_receivedMessage; if (handler) { - // Prevent reference cycle with handler + // Prevent reference cycle with _handler __weak typeof(self) weakSelf = self; _handler = ^{ __strong typeof(self) strongSelf = weakSelf; @@ -197,7 +197,7 @@ grpc_metadata_array_init(&_trailers); _op.data.recv_status_on_client.trailing_metadata = &_trailers; if (handler) { - // Prevent reference cycle with handler + // Prevent reference cycle with _handler __weak typeof(self) weakSelf = self; _handler = ^{ __strong typeof(self) strongSelf = weakSelf; -- cgit v1.2.3