File tree 1 file changed +4
-0
lines changed
1 file changed +4
-0
lines changed Original file line number Diff line number Diff line change @@ -379,6 +379,9 @@ class Reference : public RefBase {
379
379
380
380
protected:
381
381
inline void Finalize (bool is_env_teardown = false ) override {
382
+ if (is_env_teardown) env_teardown_finalize_started_ = true ;
383
+ if (!is_env_teardown && env_teardown_finalize_started_) return ;
384
+
382
385
// During env teardown, `~napi_env()` alone is responsible for finalizing.
383
386
// Thus, we don't want any stray gc passes to trigger a second call to
384
387
// `RefBase::Finalize()`. ClearWeak will ensure that even if the
@@ -467,6 +470,7 @@ class Reference : public RefBase {
467
470
reference->Finalize ();
468
471
}
469
472
473
+ bool env_teardown_finalize_started_ = false ;
470
474
v8impl::Persistent<v8::Value> _persistent;
471
475
SecondPassCallParameterRef* _secondPassParameter;
472
476
};
You can’t perform that action at this time.
0 commit comments