File tree Expand file tree Collapse file tree 1 file changed +4
-0
lines changed Expand file tree Collapse file tree 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 {
379379
380380 protected:
381381 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+
382385 // During env teardown, `~napi_env()` alone is responsible for finalizing.
383386 // Thus, we don't want any stray gc passes to trigger a second call to
384387 // `RefBase::Finalize()`. ClearWeak will ensure that even if the
@@ -467,6 +470,7 @@ class Reference : public RefBase {
467470 reference->Finalize ();
468471 }
469472
473+ bool env_teardown_finalize_started_ = false ;
470474 v8impl::Persistent<v8::Value> _persistent;
471475 SecondPassCallParameterRef* _secondPassParameter;
472476};
You can’t perform that action at this time.
0 commit comments