aboutsummaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorGravatar Muxi Yan <mxyan@google.com>2018-12-12 14:30:12 -0800
committerGravatar Muxi Yan <mxyan@google.com>2018-12-12 14:30:12 -0800
commit3fc5ca0c75aae97e9201df000a5afd5f628403b8 (patch)
tree59e4904776159a961466002bcf6d11d7f9e7cebc
parent20c8cc72920b14520160c4e2001caec2b8acddc0 (diff)
batch fix
-rw-r--r--src/objective-c/GRPCClient/private/GRPCInsecureChannelFactory.m2
-rw-r--r--src/objective-c/GRPCClient/private/GRPCSecureChannelFactory.m2
-rw-r--r--src/objective-c/GRPCClient/private/GRPCWrappedCall.m4
3 files changed, 6 insertions, 2 deletions
diff --git a/src/objective-c/GRPCClient/private/GRPCInsecureChannelFactory.m b/src/objective-c/GRPCClient/private/GRPCInsecureChannelFactory.m
index b802137c13..8ad1e848f5 100644
--- a/src/objective-c/GRPCClient/private/GRPCInsecureChannelFactory.m
+++ b/src/objective-c/GRPCClient/private/GRPCInsecureChannelFactory.m
@@ -33,7 +33,7 @@
}
- (grpc_channel *)createChannelWithHost:(NSString *)host channelArgs:(NSDictionary *)args {
- grpc_channel_args *coreChannelArgs = GRPCBuildChannelArgs([args copy]);
+ grpc_channel_args *coreChannelArgs = GRPCBuildChannelArgs(args);
grpc_channel *unmanagedChannel =
grpc_insecure_channel_create(host.UTF8String, coreChannelArgs, NULL);
GRPCFreeChannelArgs(coreChannelArgs);
diff --git a/src/objective-c/GRPCClient/private/GRPCSecureChannelFactory.m b/src/objective-c/GRPCClient/private/GRPCSecureChannelFactory.m
index 3ccc70a744..9699889536 100644
--- a/src/objective-c/GRPCClient/private/GRPCSecureChannelFactory.m
+++ b/src/objective-c/GRPCClient/private/GRPCSecureChannelFactory.m
@@ -119,7 +119,7 @@
if (host.length == 0) {
return NULL;
}
- grpc_channel_args *coreChannelArgs = GRPCBuildChannelArgs([args copy]);
+ grpc_channel_args *coreChannelArgs = GRPCBuildChannelArgs(args);
grpc_channel *unmanagedChannel =
grpc_secure_channel_create(_channelCreds, host.UTF8String, coreChannelArgs, NULL);
GRPCFreeChannelArgs(coreChannelArgs);
diff --git a/src/objective-c/GRPCClient/private/GRPCWrappedCall.m b/src/objective-c/GRPCClient/private/GRPCWrappedCall.m
index 4edd9d3e37..1a848a4b7c 100644
--- a/src/objective-c/GRPCClient/private/GRPCWrappedCall.m
+++ b/src/objective-c/GRPCClient/private/GRPCWrappedCall.m
@@ -307,6 +307,10 @@
- (void)channelDisconnected {
@synchronized(self) {
if (_call != NULL) {
+ // Unreference the call will lead to its cancellation in the core. Note that since
+ // this function is only called with a network state change, any existing GRPCCall object will
+ // also receive the same notification and cancel themselves with GRPCErrorCodeUnavailable, so
+ // the user gets GRPCErrorCodeUnavailable in this case.
grpc_call_unref(_call);
_call = NULL;
}