mirror of
https://github.com/nodejs/node.git
synced 2026-10-28 10:15:07 +08:00
node-api: create reference only when needed
Optimize napi_create_external() to create the reference for calling finalizer only if user actually provides a finalizer callback. PR-URL: https://github.com/nodejs/node/pull/44827 Reviewed-By: Luigi Pinca <luigipinca@gmail.com> Reviewed-By: Daeyeon Jeong <daeyeon.dev@gmail.com> Reviewed-By: James M Snell <jasnell@gmail.com>
This commit is contained in:
1 parent
f4815fcd76
commit
ecd5de08b7
1 file changed
+6
-4
@@ -2387,10 +2387,12 @@ napi_status NAPI_CDECL napi_create_external(napi_env env,
|
||||
|
||||
v8::Local<v8::Value> external_value = v8::External::New(isolate, data);
|
||||
|
||||
// The Reference object will delete itself after invoking the finalizer
|
||||
// callback.
|
||||
v8impl::Reference::New(
|
||||
env, external_value, 0, true, finalize_cb, data, finalize_hint);
|
||||
if (finalize_cb) {
|
||||
// The Reference object will delete itself after invoking the finalizer
|
||||
// callback.
|
||||
v8impl::Reference::New(
|
||||
env, external_value, 0, true, finalize_cb, data, finalize_hint);
|
||||
}
|
||||
|
||||
*result = v8impl::JsValueFromV8LocalValue(external_value);
|
||||
|
||||
|
||||
Reference in new issue
Block a user