@@ -66,9 +66,9 @@ inline T* Realm::GetBindingData(
6666// static
6767template <typename T>
6868inline T* Realm::GetBindingData (v8::Local<v8::Context> context) {
69- BindingDataStore* map =
70- static_cast <BindingDataStore*>(context-> GetAlignedPointerFromEmbedderData (
71- ContextEmbedderIndex:: kBindingDataStoreIndex ) );
69+ Realm* realm = GetCurrent (context);
70+ DCHECK_NOT_NULL (realm);
71+ BindingDataStore* map = realm-> binding_data_store ( );
7272 DCHECK_NOT_NULL (map);
7373 constexpr size_t binding_index = static_cast <size_t >(T::binding_type_int);
7474 static_assert (binding_index < std::tuple_size_v<BindingDataStore>);
@@ -81,10 +81,7 @@ inline T* Realm::GetBindingData(v8::Local<v8::Context> context) {
8181}
8282
8383template <typename T, typename ... Args>
84- inline T* Realm::AddBindingData (v8::Local<v8::Context> context,
85- v8::Local<v8::Object> target,
86- Args&&... args) {
87- DCHECK_EQ (GetCurrent (context), this );
84+ inline T* Realm::AddBindingData (v8::Local<v8::Object> target, Args&&... args) {
8885 // This won't compile if T is not a BaseObject subclass.
8986 static_assert (std::is_base_of_v<BaseObject, T>);
9087 // The binding data must be weak so that it won't keep the realm reachable
@@ -93,15 +90,11 @@ inline T* Realm::AddBindingData(v8::Local<v8::Context> context,
9390 // reachable throughout the lifetime of the realm.
9491 BaseObjectWeakPtr<T> item =
9592 MakeWeakBaseObject<T>(this , target, std::forward<Args>(args)...);
96- DCHECK_EQ (context->GetAlignedPointerFromEmbedderData (
97- ContextEmbedderIndex::kBindingDataStoreIndex ),
98- &binding_data_store_);
9993 constexpr size_t binding_index = static_cast <size_t >(T::binding_type_int);
10094 static_assert (binding_index < std::tuple_size_v<BindingDataStore>);
101- // Should not insert the binding twice .
95+ // Each slot is expected to be assigned only once .
10296 CHECK (!binding_data_store_[binding_index]);
10397 binding_data_store_[binding_index] = item;
104- DCHECK_EQ (GetBindingData<T>(context), item.get ());
10598 return item.get ();
10699}
107100
0 commit comments