|  | @@ -59,14 +59,12 @@ using v8::Value;
 | 
	
		
			
				|  |  |  NanCallback *Channel::constructor;
 | 
	
		
			
				|  |  |  Persistent<FunctionTemplate> Channel::fun_tpl;
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -Channel::Channel(grpc_channel *channel, NanUtf8String *host)
 | 
	
		
			
				|  |  | -    : wrapped_channel(channel), host(host) {}
 | 
	
		
			
				|  |  | +Channel::Channel(grpc_channel *channel) : wrapped_channel(channel) {}
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  Channel::~Channel() {
 | 
	
		
			
				|  |  |    if (wrapped_channel != NULL) {
 | 
	
		
			
				|  |  |      grpc_channel_destroy(wrapped_channel);
 | 
	
		
			
				|  |  |    }
 | 
	
		
			
				|  |  | -  delete host;
 | 
	
		
			
				|  |  |  }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  void Channel::Init(Handle<Object> exports) {
 | 
	
	
		
			
				|  | @@ -91,8 +89,6 @@ bool Channel::HasInstance(Handle<Value> val) {
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  grpc_channel *Channel::GetWrappedChannel() { return this->wrapped_channel; }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -char *Channel::GetHost() { return **this->host; }
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  |  NAN_METHOD(Channel::New) {
 | 
	
		
			
				|  |  |    NanScope();
 | 
	
		
			
				|  |  |  
 | 
	
	
		
			
				|  | @@ -103,8 +99,7 @@ NAN_METHOD(Channel::New) {
 | 
	
		
			
				|  |  |      }
 | 
	
		
			
				|  |  |      grpc_channel *wrapped_channel;
 | 
	
		
			
				|  |  |      // Owned by the Channel object
 | 
	
		
			
				|  |  | -    NanUtf8String *host = new NanUtf8String(args[0]);
 | 
	
		
			
				|  |  | -    NanUtf8String *host_override = NULL;
 | 
	
		
			
				|  |  | +    NanUtf8String host(args[0]);
 | 
	
		
			
				|  |  |      grpc_credentials *creds;
 | 
	
		
			
				|  |  |      if (!Credentials::HasInstance(args[1])) {
 | 
	
		
			
				|  |  |        return NanThrowTypeError(
 | 
	
	
		
			
				|  | @@ -116,12 +111,9 @@ NAN_METHOD(Channel::New) {
 | 
	
		
			
				|  |  |      grpc_channel_args *channel_args_ptr;
 | 
	
		
			
				|  |  |      if (args[2]->IsUndefined()) {
 | 
	
		
			
				|  |  |        channel_args_ptr = NULL;
 | 
	
		
			
				|  |  | -      wrapped_channel = grpc_insecure_channel_create(**host, NULL);
 | 
	
		
			
				|  |  | +      wrapped_channel = grpc_insecure_channel_create(*host, NULL);
 | 
	
		
			
				|  |  |      } else if (args[2]->IsObject()) {
 | 
	
		
			
				|  |  |        Handle<Object> args_hash(args[2]->ToObject()->Clone());
 | 
	
		
			
				|  |  | -      if (args_hash->HasOwnProperty(NanNew(GRPC_SSL_TARGET_NAME_OVERRIDE_ARG))) {
 | 
	
		
			
				|  |  | -        host_override = new NanUtf8String(args_hash->Get(NanNew(GRPC_SSL_TARGET_NAME_OVERRIDE_ARG)));
 | 
	
		
			
				|  |  | -      }
 | 
	
		
			
				|  |  |        Handle<Array> keys(args_hash->GetOwnPropertyNames());
 | 
	
		
			
				|  |  |        grpc_channel_args channel_args;
 | 
	
		
			
				|  |  |        channel_args.num_args = keys->Length();
 | 
	
	
		
			
				|  | @@ -153,20 +145,15 @@ NAN_METHOD(Channel::New) {
 | 
	
		
			
				|  |  |        return NanThrowTypeError("Channel expects a string and an object");
 | 
	
		
			
				|  |  |      }
 | 
	
		
			
				|  |  |      if (creds == NULL) {
 | 
	
		
			
				|  |  | -      wrapped_channel = grpc_insecure_channel_create(**host, channel_args_ptr);
 | 
	
		
			
				|  |  | +      wrapped_channel = grpc_insecure_channel_create(*host, channel_args_ptr);
 | 
	
		
			
				|  |  |      } else {
 | 
	
		
			
				|  |  |        wrapped_channel =
 | 
	
		
			
				|  |  | -          grpc_secure_channel_create(creds, **host, channel_args_ptr);
 | 
	
		
			
				|  |  | +          grpc_secure_channel_create(creds, *host, channel_args_ptr);
 | 
	
		
			
				|  |  |      }
 | 
	
		
			
				|  |  |      if (channel_args_ptr != NULL) {
 | 
	
		
			
				|  |  |        free(channel_args_ptr->args);
 | 
	
		
			
				|  |  |      }
 | 
	
		
			
				|  |  | -    Channel *channel;
 | 
	
		
			
				|  |  | -    if (host_override == NULL) {
 | 
	
		
			
				|  |  | -      channel = new Channel(wrapped_channel, host);
 | 
	
		
			
				|  |  | -    } else {
 | 
	
		
			
				|  |  | -      channel = new Channel(wrapped_channel, host_override);
 | 
	
		
			
				|  |  | -    }
 | 
	
		
			
				|  |  | +    Channel *channel = new Channel(wrapped_channel);
 | 
	
		
			
				|  |  |      channel->Wrap(args.This());
 | 
	
		
			
				|  |  |      NanReturnValue(args.This());
 | 
	
		
			
				|  |  |    } else {
 |