| Index: src/wasm/wasm-module.cc
|
| diff --git a/src/wasm/wasm-module.cc b/src/wasm/wasm-module.cc
|
| index 0ada2cf5c6551e8ab18a20a81c8817ded39a82de..f9ac999c634cb2e001095af1349c8f0bb8f8a225 100644
|
| --- a/src/wasm/wasm-module.cc
|
| +++ b/src/wasm/wasm-module.cc
|
| @@ -159,9 +159,9 @@ static void InstanceFinalizer(const v8::WeakCallbackInfo<void>& data) {
|
| // was GC-ed. In that case, there won't be any new instances created,
|
| // and we don't need to maintain the links between instances.
|
| if (!weak_wasm_module->cleared()) {
|
| - JSObject* wasm_module = JSObject::cast(weak_wasm_module->value());
|
| - WasmCompiledModule* current_template =
|
| - WasmCompiledModule::cast(wasm_module->GetEmbedderField(0));
|
| + WasmModuleObject* wasm_module =
|
| + WasmModuleObject::cast(weak_wasm_module->value());
|
| + WasmCompiledModule* current_template = wasm_module->compiled_module();
|
|
|
| TRACE("chain before {\n");
|
| TRACE_CHAIN(current_template);
|
| @@ -175,10 +175,12 @@ static void InstanceFinalizer(const v8::WeakCallbackInfo<void>& data) {
|
| if (next == nullptr) {
|
| WasmCompiledModule::Reset(isolate, compiled_module);
|
| } else {
|
| - DCHECK(next->value()->IsFixedArray());
|
| - wasm_module->SetEmbedderField(0, next->value());
|
| + WasmCompiledModule* next_compiled_module =
|
| + WasmCompiledModule::cast(next->value());
|
| + WasmModuleObject::cast(wasm_module)
|
| + ->set_compiled_module(next_compiled_module);
|
| DCHECK_NULL(prev);
|
| - WasmCompiledModule::cast(next->value())->reset_weak_prev_instance();
|
| + next_compiled_module->reset_weak_prev_instance();
|
| }
|
| } else {
|
| DCHECK(!(prev == nullptr && next == nullptr));
|
| @@ -205,7 +207,7 @@ static void InstanceFinalizer(const v8::WeakCallbackInfo<void>& data) {
|
| }
|
| }
|
| TRACE("chain after {\n");
|
| - TRACE_CHAIN(WasmCompiledModule::cast(wasm_module->GetEmbedderField(0)));
|
| + TRACE_CHAIN(wasm_module->compiled_module());
|
| TRACE("}\n");
|
| }
|
| compiled_module->reset_weak_owning_instance();
|
| @@ -452,10 +454,6 @@ void wasm::TableSet(ErrorThrower* thrower, Isolate* isolate,
|
| array->set(index, *value);
|
| }
|
|
|
| -bool wasm::IsWasmInstance(Object* object) {
|
| - return WasmInstanceObject::IsWasmInstanceObject(object);
|
| -}
|
| -
|
| Handle<Script> wasm::GetScript(Handle<JSObject> instance) {
|
| WasmCompiledModule* compiled_module =
|
| WasmInstanceObject::cast(*instance)->compiled_module();
|
| @@ -514,8 +512,9 @@ void testing::ValidateInstancesChain(Isolate* isolate,
|
| CHECK((prev == nullptr && !current_instance->has_weak_prev_instance()) ||
|
| current_instance->ptr_to_weak_prev_instance()->value() == prev);
|
| CHECK_EQ(current_instance->ptr_to_weak_wasm_module()->value(), *module_obj);
|
| - CHECK(IsWasmInstance(
|
| - current_instance->ptr_to_weak_owning_instance()->value()));
|
| + CHECK(current_instance->ptr_to_weak_owning_instance()
|
| + ->value()
|
| + ->IsWasmInstanceObject());
|
| prev = current_instance;
|
| current_instance = WasmCompiledModule::cast(
|
| current_instance->ptr_to_weak_next_instance()->value());
|
|
|