mirror of
https://github.com/zebrajr/node.git
synced 2026-01-15 12:15:26 +00:00
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:
@@ -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()));
|
||||
}
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user