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 <info@bnoordhuis.nl> Reviewed-By: James M Snell <jasnell@gmail.com> Reviewed-By: Tiancheng "Timothy" Gu <timothygu99@gmail.com> Reviewed-By: Gus Caplan <me@gus.host> Reviewed-By: Anna Henningsen <anna@addaleax.net>
This commit is contained in:
parent
36793b8c65
commit
590769bb96
@ -45,10 +45,7 @@ void ConnectionWrap<WrapType, UVType>::OnConnection(uv_stream_t* handle,
|
|||||||
// uv_close() on the handle.
|
// uv_close() on the handle.
|
||||||
CHECK_EQ(wrap_data->persistent().IsEmpty(), false);
|
CHECK_EQ(wrap_data->persistent().IsEmpty(), false);
|
||||||
|
|
||||||
Local<Value> argv[] = {
|
Local<Value> client_handle;
|
||||||
Integer::New(env->isolate(), status),
|
|
||||||
Undefined(env->isolate())
|
|
||||||
};
|
|
||||||
|
|
||||||
if (status == 0) {
|
if (status == 0) {
|
||||||
// Instantiate the client javascript object and handle.
|
// Instantiate the client javascript object and handle.
|
||||||
@ -59,17 +56,20 @@ void ConnectionWrap<WrapType, UVType>::OnConnection(uv_stream_t* handle,
|
|||||||
// Unwrap the client javascript object.
|
// Unwrap the client javascript object.
|
||||||
WrapType* wrap;
|
WrapType* wrap;
|
||||||
ASSIGN_OR_RETURN_UNWRAP(&wrap, client_obj);
|
ASSIGN_OR_RETURN_UNWRAP(&wrap, client_obj);
|
||||||
uv_stream_t* client_handle =
|
uv_stream_t* client = reinterpret_cast<uv_stream_t*>(&wrap->handle_);
|
||||||
reinterpret_cast<uv_stream_t*>(&wrap->handle_);
|
|
||||||
// uv_accept can fail if the new connection has already been closed, in
|
// uv_accept can fail if the new connection has already been closed, in
|
||||||
// which case an EAGAIN (resource temporarily unavailable) will be
|
// which case an EAGAIN (resource temporarily unavailable) will be
|
||||||
// returned.
|
// returned.
|
||||||
if (uv_accept(handle, client_handle))
|
if (uv_accept(handle, client))
|
||||||
return;
|
return;
|
||||||
|
|
||||||
// Successful accept. Call the onconnection callback in JavaScript land.
|
// Successful accept. Call the onconnection callback in JavaScript land.
|
||||||
argv[1] = client_obj;
|
client_handle = client_obj;
|
||||||
|
} else {
|
||||||
|
client_handle = Undefined(env->isolate());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Local<Value> argv[] = { Integer::New(env->isolate(), status), client_handle };
|
||||||
wrap_data->MakeCallback(env->onconnection_string(), arraysize(argv), argv);
|
wrap_data->MakeCallback(env->onconnection_string(), arraysize(argv), argv);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user