From 45c9ca7fd430022a9c0567e1b9f535b3e3f956fd Mon Sep 17 00:00:00 2001 From: cjihrig Date: Tue, 18 Oct 2016 15:04:41 -0400 Subject: src: remove redundant spawn/spawnSync type checks This commit removes C++ checks from spawn() and spawnSync() that are duplicates of the JavaScript type checking. Fixes: https://github.com/nodejs/node/issues/8096 Fixes: https://github.com/nodejs/node/issues/8539 Refs: https://github.com/nodejs/node/issues/9722 PR-URL: https://github.com/nodejs/node/pull/8312 Reviewed-By: Ben Noordhuis --- src/process_wrap.cc | 20 +++++++------------- 1 file changed, 7 insertions(+), 13 deletions(-) (limited to 'src/process_wrap.cc') diff --git a/src/process_wrap.cc b/src/process_wrap.cc index 3dcde0962a..8c8e4704be 100644 --- a/src/process_wrap.cc +++ b/src/process_wrap.cc @@ -121,35 +121,29 @@ class ProcessWrap : public HandleWrap { // options.uid Local uid_v = js_options->Get(env->uid_string()); - if (uid_v->IsInt32()) { + if (!uid_v->IsUndefined() && !uid_v->IsNull()) { + CHECK(uid_v->IsInt32()); const int32_t uid = uid_v->Int32Value(env->context()).FromJust(); options.flags |= UV_PROCESS_SETUID; options.uid = static_cast(uid); - } else if (!uid_v->IsUndefined() && !uid_v->IsNull()) { - return env->ThrowTypeError("options.uid should be a number"); } // options.gid Local gid_v = js_options->Get(env->gid_string()); - if (gid_v->IsInt32()) { + if (!gid_v->IsUndefined() && !gid_v->IsNull()) { + CHECK(gid_v->IsInt32()); const int32_t gid = gid_v->Int32Value(env->context()).FromJust(); options.flags |= UV_PROCESS_SETGID; options.gid = static_cast(gid); - } else if (!gid_v->IsUndefined() && !gid_v->IsNull()) { - return env->ThrowTypeError("options.gid should be a number"); } // TODO(bnoordhuis) is this possible to do without mallocing ? // options.file Local file_v = js_options->Get(env->file_string()); - node::Utf8Value file(env->isolate(), - file_v->IsString() ? file_v : Local()); - if (file.length() > 0) { - options.file = *file; - } else { - return env->ThrowTypeError("Bad argument"); - } + CHECK(file_v->IsString()); + node::Utf8Value file(env->isolate(), file_v); + options.file = *file; // options.args Local argv_v = js_options->Get(env->args_string()); -- cgit v1.2.3