From 590769bb96a9012e85b06569952743abb8fe68ad Mon Sep 17 00:00:00 2001 From: Daniel Bevenius Date: Mon, 7 May 2018 14:06:56 +0200 Subject: [PATCH] src: don't create Undefined if not needed This commit moves the creation of argv and only creates an undefined value if the passed in status was not 0. The variable name client_handle was already used in this function but I've change that usage so that this variable name matches the onconnection callback functions parameter name clientHandle. PR-URL: https://github.com/nodejs/node/pull/20573 Reviewed-By: Ben Noordhuis Reviewed-By: James M Snell Reviewed-By: Tiancheng "Timothy" Gu Reviewed-By: Gus Caplan Reviewed-By: Anna Henningsen --- src/connection_wrap.cc | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/src/connection_wrap.cc b/src/connection_wrap.cc index e0052a643b8..01d0388d4de 100644 --- a/src/connection_wrap.cc +++ b/src/connection_wrap.cc @@ -45,10 +45,7 @@ void ConnectionWrap::OnConnection(uv_stream_t* handle, // uv_close() on the handle. CHECK_EQ(wrap_data->persistent().IsEmpty(), false); - Local argv[] = { - Integer::New(env->isolate(), status), - Undefined(env->isolate()) - }; + Local client_handle; if (status == 0) { // Instantiate the client javascript object and handle. @@ -59,17 +56,20 @@ void ConnectionWrap::OnConnection(uv_stream_t* handle, // Unwrap the client javascript object. WrapType* wrap; ASSIGN_OR_RETURN_UNWRAP(&wrap, client_obj); - uv_stream_t* client_handle = - reinterpret_cast(&wrap->handle_); + uv_stream_t* client = reinterpret_cast(&wrap->handle_); // uv_accept can fail if the new connection has already been closed, in // which case an EAGAIN (resource temporarily unavailable) will be // returned. - if (uv_accept(handle, client_handle)) + if (uv_accept(handle, client)) return; // Successful accept. Call the onconnection callback in JavaScript land. - argv[1] = client_obj; + client_handle = client_obj; + } else { + client_handle = Undefined(env->isolate()); } + + Local argv[] = { Integer::New(env->isolate(), status), client_handle }; wrap_data->MakeCallback(env->onconnection_string(), arraysize(argv), argv); }