diff options
Diffstat (limited to 'src/objective-c/GRPCClient/private/GRPCChannel.m')
-rw-r--r-- | src/objective-c/GRPCClient/private/GRPCChannel.m | 22 |
1 files changed, 9 insertions, 13 deletions
diff --git a/src/objective-c/GRPCClient/private/GRPCChannel.m b/src/objective-c/GRPCClient/private/GRPCChannel.m index 44f64e704a..90973cd83d 100644 --- a/src/objective-c/GRPCClient/private/GRPCChannel.m +++ b/src/objective-c/GRPCClient/private/GRPCChannel.m @@ -54,17 +54,13 @@ }); GRPCChannel *channel = channelCache[host]; if (!channel) { - channel = [[self alloc] initWithHost:host]; + channel = [self uncachedChannelToHost:host]; channelCache[host] = channel; } return channel; } -- (instancetype)init { - return [self initWithHost:nil]; -} - -- (instancetype)initWithHost:(NSString *)host { ++ (instancetype)uncachedChannelToHost:(NSString *)host { if (![host rangeOfString:@"://"].length) { // No scheme provided; assume https. host = [@"https://" stringByAppendingString:host]; @@ -86,6 +82,10 @@ return nil; // silence warning. } +- (instancetype)init { + return [self initWithChannel:NULL hostName:nil]; +} + - (instancetype)initWithChannel:(struct grpc_channel *)unmanagedChannel hostName:(NSString *)hostName { if (!unmanagedChannel || !hostName) { @@ -113,12 +113,8 @@ } - (void)dealloc { - // _unmanagedChannel is NULL when deallocating an object of the base class (because the - // initializer returns a different object). - if (_unmanagedChannel) { - // TODO(jcanizales): Be sure to add a test with a server that closes the connection prematurely, - // as in the past that made this call to crash. - grpc_channel_destroy(_unmanagedChannel); - } + // TODO(jcanizales): Be sure to add a test with a server that closes the connection prematurely, + // as in the past that made this call to crash. + grpc_channel_destroy(_unmanagedChannel); } @end |