src: manage MakeContext() pointer with unique_ptr

PR-URL: https://github.com/nodejs/node/pull/28616
Refs: https://github.com/nodejs/node/pull/28452
Reviewed-By: Anna Henningsen <anna@addaleax.net>
Reviewed-By: Rich Trott <rtrott@gmail.com>
This commit is contained in:
cjihrig
2019-07-09 18:21:03 -04:00
parent fe1b96d460
commit 641d57fc0a

View File

@@ -255,24 +255,21 @@ void ContextifyContext::MakeContext(const FunctionCallbackInfo<Value>& args) {
options.allow_code_gen_wasm = args[4].As<Boolean>();
TryCatchScope try_catch(env);
ContextifyContext* context = new ContextifyContext(env, sandbox, options);
auto context_ptr = std::make_unique<ContextifyContext>(env, sandbox, options);
if (try_catch.HasCaught()) {
if (!try_catch.HasTerminated())
try_catch.ReThrow();
delete context;
return;
}
if (context->context().IsEmpty()) {
delete context;
if (context_ptr->context().IsEmpty())
return;
}
sandbox->SetPrivate(
env->context(),
env->contextify_context_private_symbol(),
External::New(env->isolate(), context));
External::New(env->isolate(), context_ptr.release()));
}