From d47a44d8ad170d78aa675c3aa7d3b2af19f63e3b Mon Sep 17 00:00:00 2001
From: yang-g <yangg@google.com>
Date: Thu, 10 Dec 2015 15:44:25 -0800
Subject: [PATCH] cleanup a bit

---
 src/core/surface/secure_channel_create.c | 23 ++++++++---------------
 1 file changed, 8 insertions(+), 15 deletions(-)

diff --git a/src/core/surface/secure_channel_create.c b/src/core/surface/secure_channel_create.c
index c0a53e9cc0..88cddf4316 100644
--- a/src/core/surface/secure_channel_create.c
+++ b/src/core/surface/secure_channel_create.c
@@ -305,29 +305,22 @@ grpc_channel *grpc_secure_channel_create(grpc_channel_credentials *creds,
   f->master = channel;
   GRPC_CHANNEL_INTERNAL_REF(channel, "subchannel_factory");
   resolver = grpc_resolver_create(target, &f->base);
-  if (!resolver) {
-    grpc_subchannel_factory_unref(&exec_ctx, &f->base);
-    GRPC_SECURITY_CONNECTOR_UNREF(&security_connector->base, "channel_create");
-    grpc_channel_args_destroy(args_copy);
-    if (new_args_from_connector != NULL) {
-      grpc_channel_args_destroy(new_args_from_connector);
-    }
-    GRPC_CHANNEL_INTERNAL_UNREF(&exec_ctx, channel, "subchannel_factory");
-    grpc_exec_ctx_finish(&exec_ctx);
-    return NULL;
+  if (resolver) {
+    grpc_client_channel_set_resolver(
+        &exec_ctx, grpc_channel_get_channel_stack(channel), resolver);
+    GRPC_RESOLVER_UNREF(&exec_ctx, resolver, "create");
   }
-
-  grpc_client_channel_set_resolver(
-      &exec_ctx, grpc_channel_get_channel_stack(channel), resolver);
-  GRPC_RESOLVER_UNREF(&exec_ctx, resolver, "create");
   grpc_subchannel_factory_unref(&exec_ctx, &f->base);
   GRPC_SECURITY_CONNECTOR_UNREF(&security_connector->base, "channel_create");
-
   grpc_channel_args_destroy(args_copy);
   if (new_args_from_connector != NULL) {
     grpc_channel_args_destroy(new_args_from_connector);
   }
 
+  if (!resolver) {
+    GRPC_CHANNEL_INTERNAL_UNREF(&exec_ctx, channel, "subchannel_factory");
+    channel = NULL;
+  }
   grpc_exec_ctx_finish(&exec_ctx);
 
   return channel;
-- 
GitLab