From 458278595b244a63849df2cef6ed78cae256909d Mon Sep 17 00:00:00 2001 From: Chengzhong Wu Date: Mon, 10 Apr 2023 17:30:01 +0800 Subject: [PATCH] fixup! --- src/node_realm.cc | 1 + src/node_shadow_realm.cc | 10 +--------- src/node_shadow_realm.h | 2 -- 3 files changed, 2 insertions(+), 11 deletions(-) diff --git a/src/node_realm.cc b/src/node_realm.cc index 14e93a8474c3134..8f135c08cca328f 100644 --- a/src/node_realm.cc +++ b/src/node_realm.cc @@ -21,6 +21,7 @@ using v8::Value; Realm::Realm(Environment* env, v8::Local context, Kind kind) : env_(env), isolate_(context->GetIsolate()), kind_(kind) { context_.Reset(isolate_, context); + binding_data_store_.fill(nullptr); } Realm::~Realm() { diff --git a/src/node_shadow_realm.cc b/src/node_shadow_realm.cc index 5716da838731e3a..55553bbe3ff8733 100644 --- a/src/node_shadow_realm.cc +++ b/src/node_shadow_realm.cc @@ -49,15 +49,7 @@ void ShadowRealm::WeakCallback(const v8::WeakCallbackInfo& data) { // This is necessary to avoid cleaning up base objects before their scheduled // weak callbacks are invoked, which can lead to accessing to v8 apis during // the first pass of the weak callback. - data.SetSecondPassCallback(SecondPassWeakCallback); -} - -// static -void ShadowRealm::SecondPassWeakCallback( - const v8::WeakCallbackInfo& data) { - ShadowRealm* realm = data.GetParameter(); - // Delete the realm and run cleanup hooks. - delete realm; + realm->env()->SetImmediate([realm](Environment* env) { delete realm; }); } ShadowRealm::ShadowRealm(Environment* env) diff --git a/src/node_shadow_realm.h b/src/node_shadow_realm.h index 742be2a8ec22b14..cc76cbacdc48426 100644 --- a/src/node_shadow_realm.h +++ b/src/node_shadow_realm.h @@ -30,8 +30,6 @@ class ShadowRealm : public Realm { private: static void WeakCallback(const v8::WeakCallbackInfo& data); - static void SecondPassWeakCallback( - const v8::WeakCallbackInfo& data); explicit ShadowRealm(Environment* env); ~ShadowRealm();