summaryrefslogtreecommitdiff
path: root/src/tls_wrap.cc
diff options
context:
space:
mode:
authorAnna Henningsen <anna@addaleax.net>2019-01-30 18:42:25 +0100
committerAnna Henningsen <anna@addaleax.net>2019-02-08 21:03:53 +0100
commit03908d270d602b525f0051ddc5a648c021a04f9a (patch)
tree3df159878d5b559614f5966551fcdf98bf85d8b7 /src/tls_wrap.cc
parentd999b55d61f5b7ba5b0cd244d246c49c96ca6afb (diff)
downloadandroid-node-v8-03908d270d602b525f0051ddc5a648c021a04f9a.tar.gz
android-node-v8-03908d270d602b525f0051ddc5a648c021a04f9a.tar.bz2
android-node-v8-03908d270d602b525f0051ddc5a648c021a04f9a.zip
src: pass along errors from tls object creation
PR-URL: https://github.com/nodejs/node/pull/25822 Reviewed-By: Gireesh Punathil <gpunathi@in.ibm.com>
Diffstat (limited to 'src/tls_wrap.cc')
-rw-r--r--src/tls_wrap.cc15
1 files changed, 10 insertions, 5 deletions
diff --git a/src/tls_wrap.cc b/src/tls_wrap.cc
index 4871cd405d..df6bb9c56f 100644
--- a/src/tls_wrap.cc
+++ b/src/tls_wrap.cc
@@ -49,13 +49,11 @@ using v8::String;
using v8::Value;
TLSWrap::TLSWrap(Environment* env,
+ Local<Object> obj,
Kind kind,
StreamBase* stream,
SecureContext* sc)
- : AsyncWrap(env,
- env->tls_wrap_constructor_function()
- ->NewInstance(env->context()).ToLocalChecked(),
- AsyncWrap::PROVIDER_TLSWRAP),
+ : AsyncWrap(env, obj, AsyncWrap::PROVIDER_TLSWRAP),
SSLWrap<TLSWrap>(env, sc, kind),
StreamBase(env),
sc_(sc) {
@@ -160,7 +158,14 @@ void TLSWrap::Wrap(const FunctionCallbackInfo<Value>& args) {
StreamBase* stream = static_cast<StreamBase*>(stream_obj->Value());
CHECK_NOT_NULL(stream);
- TLSWrap* res = new TLSWrap(env, kind, stream, Unwrap<SecureContext>(sc));
+ Local<Object> obj;
+ if (!env->tls_wrap_constructor_function()
+ ->NewInstance(env->context())
+ .ToLocal(&obj)) {
+ return;
+ }
+
+ TLSWrap* res = new TLSWrap(env, obj, kind, stream, Unwrap<SecureContext>(sc));
args.GetReturnValue().Set(res->object());
}