| OLD | NEW |
| 1 // Copyright 2015 the V8 project authors. All rights reserved. | 1 // Copyright 2015 the V8 project authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #include <memory> | 5 #include <memory> |
| 6 | 6 |
| 7 #include "src/base/atomic-utils.h" | 7 #include "src/base/atomic-utils.h" |
| 8 #include "src/code-stubs.h" | 8 #include "src/code-stubs.h" |
| 9 | 9 |
| 10 #include "src/macro-assembler.h" | 10 #include "src/macro-assembler.h" |
| (...skipping 755 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 766 it.rinfo()->update_wasm_global_reference(globals_start, nullptr); | 766 it.rinfo()->update_wasm_global_reference(globals_start, nullptr); |
| 767 changed = true; | 767 changed = true; |
| 768 } | 768 } |
| 769 } | 769 } |
| 770 if (changed) { | 770 if (changed) { |
| 771 Assembler::FlushICache(isolate, code->instruction_start(), | 771 Assembler::FlushICache(isolate, code->instruction_start(), |
| 772 code->instruction_size()); | 772 code->instruction_size()); |
| 773 } | 773 } |
| 774 } | 774 } |
| 775 } | 775 } |
| 776 compiled_module->reset_weak_owning_instance(); | |
| 777 compiled_module->reset_heap(); | 776 compiled_module->reset_heap(); |
| 778 } | 777 } |
| 779 | 778 |
| 780 static void InstanceFinalizer(const v8::WeakCallbackInfo<void>& data) { | 779 static void InstanceFinalizer(const v8::WeakCallbackInfo<void>& data) { |
| 781 JSObject** p = reinterpret_cast<JSObject**>(data.GetParameter()); | 780 JSObject** p = reinterpret_cast<JSObject**>(data.GetParameter()); |
| 782 JSObject* owner = *p; | 781 JSObject* owner = *p; |
| 783 WasmCompiledModule* compiled_module = | 782 WasmCompiledModule* compiled_module = |
| 784 WasmCompiledModule::cast(owner->GetInternalField(kWasmCompiledModule)); | 783 WasmCompiledModule::cast(owner->GetInternalField(kWasmCompiledModule)); |
| 785 Isolate* isolate = reinterpret_cast<Isolate*>(data.GetIsolate()); | 784 Isolate* isolate = reinterpret_cast<Isolate*>(data.GetIsolate()); |
| 786 DCHECK(compiled_module->has_weak_module_object()); | 785 DCHECK(compiled_module->has_weak_module_object()); |
| (...skipping 37 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 824 DCHECK(!next->cleared()); | 823 DCHECK(!next->cleared()); |
| 825 if (prev == nullptr) { | 824 if (prev == nullptr) { |
| 826 WasmCompiledModule::cast(next->value())->reset_weak_prev_instance(); | 825 WasmCompiledModule::cast(next->value())->reset_weak_prev_instance(); |
| 827 } else { | 826 } else { |
| 828 WasmCompiledModule::cast(next->value()) | 827 WasmCompiledModule::cast(next->value()) |
| 829 ->set_ptr_to_weak_prev_instance(prev); | 828 ->set_ptr_to_weak_prev_instance(prev); |
| 830 } | 829 } |
| 831 } | 830 } |
| 832 } | 831 } |
| 833 } | 832 } |
| 833 compiled_module->reset_weak_owning_instance(); |
| 834 GlobalHandles::Destroy(reinterpret_cast<Object**>(p)); | 834 GlobalHandles::Destroy(reinterpret_cast<Object**>(p)); |
| 835 } | 835 } |
| 836 | 836 |
| 837 Handle<FixedArray> SetupIndirectFunctionTable( | 837 Handle<FixedArray> SetupIndirectFunctionTable( |
| 838 Isolate* isolate, Handle<FixedArray> wasm_functions, | 838 Isolate* isolate, Handle<FixedArray> wasm_functions, |
| 839 Handle<FixedArray> indirect_table_template, | 839 Handle<FixedArray> indirect_table_template, |
| 840 Handle<FixedArray> tables_to_replace) { | 840 Handle<FixedArray> tables_to_replace) { |
| 841 Factory* factory = isolate->factory(); | 841 Factory* factory = isolate->factory(); |
| 842 Handle<FixedArray> cloned_indirect_tables = | 842 Handle<FixedArray> cloned_indirect_tables = |
| 843 factory->CopyFixedArray(indirect_table_template); | 843 factory->CopyFixedArray(indirect_table_template); |
| (...skipping 959 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1803 WasmCompiledModule* compiled_module = | 1803 WasmCompiledModule* compiled_module = |
| 1804 WasmCompiledModule::cast(instance->GetInternalField(kWasmCompiledModule)); | 1804 WasmCompiledModule::cast(instance->GetInternalField(kWasmCompiledModule)); |
| 1805 CHECK(compiled_module->has_weak_module_object()); | 1805 CHECK(compiled_module->has_weak_module_object()); |
| 1806 CHECK(compiled_module->ptr_to_weak_module_object()->cleared()); | 1806 CHECK(compiled_module->ptr_to_weak_module_object()->cleared()); |
| 1807 } | 1807 } |
| 1808 | 1808 |
| 1809 } // namespace testing | 1809 } // namespace testing |
| 1810 } // namespace wasm | 1810 } // namespace wasm |
| 1811 } // namespace internal | 1811 } // namespace internal |
| 1812 } // namespace v8 | 1812 } // namespace v8 |
| OLD | NEW |