Skip to content

Commit 18111f2

Browse files
committed
The v8impl::Reference class is now separated into ReferenceWithFinalizer class
See nodejs@431ac16
1 parent f43eb18 commit 18111f2

File tree

2 files changed

+8
-8
lines changed

2 files changed

+8
-8
lines changed

src/js_native_api_v8.cc

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -331,15 +331,15 @@ inline napi_status ConcludeDeferred(napi_env env,
331331
}
332332

333333
#if 1
334-
class ArrayBufferReference final : public Reference {
334+
class ArrayBufferReference final : public ReferenceWithFinalizer {
335335
public:
336336
// Same signatures for ctor and New() as Reference, except this only works
337337
// with ArrayBuffers:
338338
template <typename... Args>
339339
explicit ArrayBufferReference(napi_env env,
340340
v8::Local<v8::ArrayBuffer> value,
341341
Args&&... args)
342-
: Reference(env, value, std::forward<Args>(args)...),
342+
: ReferenceWithFinalizer(env, value, std::forward<Args>(args)...),
343343
_env(env) {}
344344

345345
template <typename... Args>
@@ -352,7 +352,7 @@ class ArrayBufferReference final : public Reference {
352352
private:
353353
napi_env _env;
354354

355-
inline void Finalize() override {
355+
inline void CallUserFinalizer() override {
356356
v8::HandleScope handle_scope(_env->isolate);
357357
v8::Local<v8::Value> obj = Get(_env);
358358
CHECK(!obj.IsEmpty());
@@ -361,7 +361,7 @@ class ArrayBufferReference final : public Reference {
361361
if (ab->IsDetachable())
362362
ab->Detach();
363363

364-
Reference::Finalize();
364+
ReferenceWithFinalizer::CallUserFinalizer();
365365
}
366366
};
367367
#endif
@@ -390,7 +390,7 @@ inline napi_status Unwrap(napi_env env,
390390
v8::Local<v8::Value> val = obj->GetInternalField(0).As<v8::Value>();
391391
#else
392392
v8::Local<v8::Value> val = obj->GetPrivate(context, NAPI_PRIVATE_KEY(context, wrapper))
393-
.ToLocalChecked();
393+
.ToLocalChecked();
394394
#endif
395395
RETURN_STATUS_IF_FALSE(env, val->IsExternal(), napi_invalid_arg);
396396
Reference* reference =

src/js_native_api_v8.h

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -417,11 +417,11 @@ class Reference : public RefTracker {
417417
ReferenceOwnership ownership);
418418
virtual void CallUserFinalizer() {}
419419
virtual void InvokeFinalizerFromGC();
420-
void Finalize() override;
421420

422421
private:
423422
static void WeakCallback(const v8::WeakCallbackInfo<Reference>& data);
424423
void SetWeak();
424+
void Finalize() override;
425425

426426
private:
427427
v8impl::Persistent<v8::Value> persistent_;
@@ -453,7 +453,7 @@ class ReferenceWithData final : public Reference {
453453
};
454454

455455
// Reference that has a user finalizer callback.
456-
class ReferenceWithFinalizer final : public Reference {
456+
class ReferenceWithFinalizer : public Reference {
457457
public:
458458
static ReferenceWithFinalizer* New(napi_env env,
459459
v8::Local<v8::Value> value,
@@ -467,7 +467,7 @@ class ReferenceWithFinalizer final : public Reference {
467467
void ResetFinalizer() override { finalizer_.ResetFinalizer(); }
468468
void* Data() override { return finalizer_.data(); }
469469

470-
private:
470+
protected:
471471
ReferenceWithFinalizer(napi_env env,
472472
v8::Local<v8::Value> value,
473473
uint32_t initial_refcount,

0 commit comments

Comments
 (0)