diff options
author | Anna Henningsen <anna@addaleax.net> | 2019-01-30 18:42:25 +0100 |
---|---|---|
committer | Anna Henningsen <anna@addaleax.net> | 2019-02-08 21:03:53 +0100 |
commit | 03908d270d602b525f0051ddc5a648c021a04f9a (patch) | |
tree | 3df159878d5b559614f5966551fcdf98bf85d8b7 /src/tls_wrap.cc | |
parent | d999b55d61f5b7ba5b0cd244d246c49c96ca6afb (diff) | |
download | android-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.cc | 15 |
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()); } |