Skip to content

Commit 134caf5

Browse files
committed
Reference::Finalize/RefBase::Finalize was generalized
See nodejs#44141
1 parent a882ace commit 134caf5

File tree

1 file changed

+14
-13
lines changed

1 file changed

+14
-13
lines changed

src/js_native_api_v8.cc

Lines changed: 14 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -344,7 +344,8 @@ class ArrayBufferReference final : public Reference {
344344
explicit ArrayBufferReference(napi_env env,
345345
v8::Local<v8::ArrayBuffer> value,
346346
Args&&... args)
347-
: Reference(env, value, std::forward<Args>(args)...) {}
347+
: Reference(env, value, std::forward<Args>(args)...),
348+
_env(env) {}
348349

349350
template <typename... Args>
350351
static ArrayBufferReference* New(napi_env env,
@@ -354,18 +355,18 @@ class ArrayBufferReference final : public Reference {
354355
}
355356

356357
private:
357-
inline void Finalize(bool is_env_teardown) override {
358-
if (is_env_teardown) {
359-
v8::HandleScope handle_scope(_env->isolate);
360-
v8::Local<v8::Value> obj = Get();
361-
CHECK(!obj.IsEmpty());
362-
CHECK(obj->IsArrayBuffer());
363-
v8::Local<v8::ArrayBuffer> ab = obj.As<v8::ArrayBuffer>();
364-
if (ab->IsDetachable())
365-
ab->Detach();
366-
}
367-
368-
Reference::Finalize(is_env_teardown);
358+
napi_env _env;
359+
360+
inline void Finalize() override {
361+
v8::HandleScope handle_scope(_env->isolate);
362+
v8::Local<v8::Value> obj = Get();
363+
CHECK(!obj.IsEmpty());
364+
CHECK(obj->IsArrayBuffer());
365+
v8::Local<v8::ArrayBuffer> ab = obj.As<v8::ArrayBuffer>();
366+
if (ab->IsDetachable())
367+
ab->Detach();
368+
369+
Reference::Finalize();
369370
}
370371
};
371372
#endif

0 commit comments

Comments
 (0)