Branch: refs/heads/main Home: https://github.com/WebKit/WebKit Commit: ef906728e98c7ea5144f72c4a5bec2a2561c1e8d https://github.com/WebKit/WebKit/commit/ef906728e98c7ea5144f72c4a5bec2a2561c1e8d Author: Yusuke Suzuki <ysuz...@apple.com> Date: 2023-01-02 (Mon, 02 Jan 2023)
Changed paths: M Source/JavaScriptCore/runtime/BufferMemoryHandle.cpp M Source/JavaScriptCore/runtime/BufferMemoryHandle.h M Source/JavaScriptCore/wasm/WasmAirIRGeneratorBase.h M Source/JavaScriptCore/wasm/WasmB3IRGenerator.cpp M Source/JavaScriptCore/wasm/WasmBinding.cpp M Source/JavaScriptCore/wasm/WasmInstance.h M Source/JavaScriptCore/wasm/WasmMemory.cpp M Source/JavaScriptCore/wasm/WasmMemory.h M Source/JavaScriptCore/wasm/WasmOperations.cpp M Source/JavaScriptCore/wasm/js/JSToWasm.cpp M Source/JavaScriptCore/wasm/js/JSWebAssemblyMemory.cpp M Source/JavaScriptCore/wasm/js/WebAssemblyFunction.cpp M Source/JavaScriptCore/wasm/js/WebAssemblyModuleRecord.cpp Log Message: ----------- [JSC] Wasm Memory should be non nullptr https://bugs.webkit.org/show_bug.cgi?id=249863 rdar://103683844 Reviewed by Mark Lam. This patch makes Wasm::Memory holding non-nullptr for zero-sized memory so that we can simplify cage handling, which can happen frequently in Wasm code. If Gigacage is enabled, we just use base-pointer. If not, allocate a page and decommit it. * Source/JavaScriptCore/runtime/BufferMemoryHandle.cpp: (JSC::BufferMemoryHandle::nullBasePointer): (JSC::BufferMemoryHandle::~BufferMemoryHandle): * Source/JavaScriptCore/runtime/BufferMemoryHandle.h: * Source/JavaScriptCore/wasm/WasmAirIRGeneratorBase.h: (JSC::Wasm::ExpressionType>::restoreWebAssemblyGlobalState): (JSC::Wasm::ExpressionType>::emitIndirectCall): * Source/JavaScriptCore/wasm/WasmB3IRGenerator.cpp: (JSC::Wasm::B3IRGenerator::restoreWebAssemblyGlobalState): (JSC::Wasm::B3IRGenerator::emitIndirectCall): * Source/JavaScriptCore/wasm/WasmInstance.h: (JSC::Wasm::Instance::updateCachedMemory): * Source/JavaScriptCore/wasm/WasmMemory.cpp: (JSC::Wasm::Memory::Memory): (JSC::Wasm::Memory::grow): (JSC::Wasm::Memory::fill): (JSC::Wasm::Memory::copy): (JSC::Wasm::Memory::init): * Source/JavaScriptCore/wasm/WasmMemory.h: * Source/JavaScriptCore/wasm/WasmOperations.cpp: (JSC::Wasm::JSC_DEFINE_JIT_OPERATION): * Source/JavaScriptCore/wasm/js/JSWebAssemblyMemory.cpp: (JSC::JSWebAssemblyMemory::buffer): * Source/JavaScriptCore/wasm/js/WebAssemblyModuleRecord.cpp: (JSC::WebAssemblyModuleRecord::evaluate): Canonical link: https://commits.webkit.org/258377@main _______________________________________________ webkit-changes mailing list webkit-changes@lists.webkit.org https://lists.webkit.org/mailman/listinfo/webkit-changes