From 58f66d650410b79059153c27877b5614e7287a44 Mon Sep 17 00:00:00 2001 From: Jungku Lee Date: Sun, 13 Aug 2023 07:16:35 +0900 Subject: [PATCH] src: remove redundant code for uv_handle_type MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit PR-URL: https://github.com/nodejs/node/pull/49061 Reviewed-By: Luigi Pinca Reviewed-By: Darshan Sen Reviewed-By: Gerhard Stöbich Reviewed-By: Deokjin Kim --- src/node_util.cc | 66 +++++++++++++----------------------------------- 1 file changed, 18 insertions(+), 48 deletions(-) diff --git a/src/node_util.cc b/src/node_util.cc index ea991873b9a033..dc2c730fdf042c 100644 --- a/src/node_util.cc +++ b/src/node_util.cc @@ -284,74 +284,44 @@ void WeakReference::DecRef(const FunctionCallbackInfo& args) { v8::Number::New(args.GetIsolate(), weak_ref->reference_count_)); } -static void GuessHandleType(const FunctionCallbackInfo& args) { - Environment* env = Environment::GetCurrent(args); - int fd; - if (!args[0]->Int32Value(env->context()).To(&fd)) return; - CHECK_GE(fd, 0); - - uv_handle_type t = uv_guess_handle(fd); +static uint32_t GetUVHandleTypeCode(const uv_handle_type type) { // TODO(anonrig): We can use an enum here and then create the array in the // binding, which will remove the hard-coding in C++ and JS land. - uint32_t type{0}; // Currently, the return type of this function corresponds to the index of the // array defined in the JS land. This is done as an optimization to reduce the // string serialization overhead. - switch (t) { + switch (type) { case UV_TCP: - type = 0; - break; + return 0; case UV_TTY: - type = 1; - break; + return 1; case UV_UDP: - type = 2; - break; + return 2; case UV_FILE: - type = 3; - break; + return 3; case UV_NAMED_PIPE: - type = 4; - break; + return 4; case UV_UNKNOWN_HANDLE: - type = 5; - break; + return 5; default: ABORT(); } +} + +static void GuessHandleType(const FunctionCallbackInfo& args) { + Environment* env = Environment::GetCurrent(args); + int fd; + if (!args[0]->Int32Value(env->context()).To(&fd)) return; + CHECK_GE(fd, 0); - args.GetReturnValue().Set(type); + uv_handle_type t = uv_guess_handle(fd); + args.GetReturnValue().Set(GetUVHandleTypeCode(t)); } static uint32_t FastGuessHandleType(Local receiver, const uint32_t fd) { uv_handle_type t = uv_guess_handle(fd); - uint32_t type{0}; - - switch (t) { - case UV_TCP: - type = 0; - break; - case UV_TTY: - type = 1; - break; - case UV_UDP: - type = 2; - break; - case UV_FILE: - type = 3; - break; - case UV_NAMED_PIPE: - type = 4; - break; - case UV_UNKNOWN_HANDLE: - type = 5; - break; - default: - ABORT(); - } - - return type; + return GetUVHandleTypeCode(t); } CFunction fast_guess_handle_type_(CFunction::Make(FastGuessHandleType));