[wasm] Make ModuleCompiler::CompileToModuleObject static
The current usage pattern is always to allocate a {ModuleCompiler}, then call {CompileToModuleObject}, then deallocate the {ModuleCompiler}. Hence, the method can be made static and allocate the {ModuleCompiler} internally. This also gives back a reason for the existence of {CompileToModuleObjectInternal}. R=ahaas@chromium.org Change-Id: Iac1ba28421ade6728046c0b9a6e9fc249a349491 Reviewed-on: https://chromium-review.googlesource.com/650386 Reviewed-by: Andreas Haas <ahaas@chromium.org> Commit-Queue: Clemens Hammacher <clemensh@chromium.org> Cr-Commit-Position: refs/heads/master@{#47834}
This commit is contained in:
parent
f9cbfafac6
commit
9ab9fbf1dd
@ -323,16 +323,15 @@ void ModuleCompiler::ValidateSequentially(const ModuleWireBytes& wire_bytes,
|
||||
}
|
||||
}
|
||||
|
||||
// static
|
||||
MaybeHandle<WasmModuleObject> ModuleCompiler::CompileToModuleObject(
|
||||
ErrorThrower* thrower, const ModuleWireBytes& wire_bytes,
|
||||
Handle<Script> asm_js_script,
|
||||
Isolate* isolate, ErrorThrower* thrower, std::unique_ptr<WasmModule> module,
|
||||
const ModuleWireBytes& wire_bytes, Handle<Script> asm_js_script,
|
||||
Vector<const byte> asm_js_offset_table_bytes) {
|
||||
|
||||
TimedHistogramScope wasm_compile_module_time_scope(
|
||||
module_->is_wasm() ? counters()->wasm_compile_wasm_module_time()
|
||||
: counters()->wasm_compile_asm_module_time());
|
||||
return CompileToModuleObjectInternal(
|
||||
isolate_, thrower, wire_bytes, asm_js_script, asm_js_offset_table_bytes);
|
||||
Handle<Code> centry_stub = CEntryStub(isolate, 1).GetCode();
|
||||
ModuleCompiler compiler(isolate, std::move(module), centry_stub);
|
||||
return compiler.CompileToModuleObjectInternal(
|
||||
thrower, wire_bytes, asm_js_script, asm_js_offset_table_bytes);
|
||||
}
|
||||
|
||||
namespace {
|
||||
@ -576,10 +575,14 @@ void ReopenHandles(Isolate* isolate, const std::vector<Handle<T>>& vec) {
|
||||
} // namespace
|
||||
|
||||
MaybeHandle<WasmModuleObject> ModuleCompiler::CompileToModuleObjectInternal(
|
||||
Isolate* isolate, ErrorThrower* thrower, const ModuleWireBytes& wire_bytes,
|
||||
ErrorThrower* thrower, const ModuleWireBytes& wire_bytes,
|
||||
Handle<Script> asm_js_script,
|
||||
Vector<const byte> asm_js_offset_table_bytes) {
|
||||
Factory* factory = isolate->factory();
|
||||
TimedHistogramScope wasm_compile_module_time_scope(
|
||||
module_->is_wasm() ? counters()->wasm_compile_wasm_module_time()
|
||||
: counters()->wasm_compile_asm_module_time());
|
||||
|
||||
Factory* factory = isolate_->factory();
|
||||
// Check whether lazy compilation is enabled for this module.
|
||||
bool lazy_compile = compile_lazy(module_.get());
|
||||
|
||||
@ -591,7 +594,7 @@ MaybeHandle<WasmModuleObject> ModuleCompiler::CompileToModuleObjectInternal(
|
||||
: BUILTIN_CODE(isolate_, Illegal);
|
||||
|
||||
GlobalHandleLifetimeManager globals_manager;
|
||||
auto env = CreateDefaultModuleEnv(isolate, module_.get(), init_builtin,
|
||||
auto env = CreateDefaultModuleEnv(isolate_, module_.get(), init_builtin,
|
||||
&globals_manager);
|
||||
|
||||
// The {code_table} array contains import wrappers and functions (which
|
||||
|
@ -155,8 +155,9 @@ class ModuleCompiler {
|
||||
compiler::ModuleEnv* module_env,
|
||||
ErrorThrower* thrower);
|
||||
|
||||
MaybeHandle<WasmModuleObject> CompileToModuleObject(
|
||||
ErrorThrower* thrower, const ModuleWireBytes& wire_bytes,
|
||||
static MaybeHandle<WasmModuleObject> CompileToModuleObject(
|
||||
Isolate* isolate, ErrorThrower* thrower,
|
||||
std::unique_ptr<WasmModule> module, const ModuleWireBytes& wire_bytes,
|
||||
Handle<Script> asm_js_script,
|
||||
Vector<const byte> asm_js_offset_table_bytes);
|
||||
|
||||
@ -164,8 +165,8 @@ class ModuleCompiler {
|
||||
|
||||
private:
|
||||
MaybeHandle<WasmModuleObject> CompileToModuleObjectInternal(
|
||||
Isolate* isolate, ErrorThrower* thrower,
|
||||
const ModuleWireBytes& wire_bytes, Handle<Script> asm_js_script,
|
||||
ErrorThrower* thrower, const ModuleWireBytes& wire_bytes,
|
||||
Handle<Script> asm_js_script,
|
||||
Vector<const byte> asm_js_offset_table_bytes);
|
||||
|
||||
Isolate* isolate_;
|
||||
|
@ -791,12 +791,11 @@ MaybeHandle<WasmModuleObject> SyncCompileTranslatedAsmJs(
|
||||
return {};
|
||||
}
|
||||
|
||||
// Transfer ownership to the {WasmModuleWrapper} generated in
|
||||
// {CompileToModuleObject}.
|
||||
Handle<Code> centry_stub = CEntryStub(isolate, 1).GetCode();
|
||||
ModuleCompiler compiler(isolate, std::move(result.val), centry_stub);
|
||||
return compiler.CompileToModuleObject(thrower, bytes, asm_js_script,
|
||||
asm_js_offset_table_bytes);
|
||||
// Transfer ownership of the WasmModule to the {WasmModuleWrapper} generated
|
||||
// in {CompileToModuleObject}.
|
||||
return ModuleCompiler::CompileToModuleObject(
|
||||
isolate, thrower, std::move(result.val), bytes, asm_js_script,
|
||||
asm_js_offset_table_bytes);
|
||||
}
|
||||
|
||||
MaybeHandle<WasmModuleObject> SyncCompile(Isolate* isolate,
|
||||
@ -819,12 +818,11 @@ MaybeHandle<WasmModuleObject> SyncCompile(Isolate* isolate,
|
||||
return {};
|
||||
}
|
||||
|
||||
// Transfer ownership to the {WasmModuleWrapper} generated in
|
||||
// {CompileToModuleObject}.
|
||||
Handle<Code> centry_stub = CEntryStub(isolate, 1).GetCode();
|
||||
ModuleCompiler compiler(isolate, std::move(result.val), centry_stub);
|
||||
return compiler.CompileToModuleObject(thrower, bytes_copy, Handle<Script>(),
|
||||
Vector<const byte>());
|
||||
// Transfer ownership of the WasmModule to the {WasmModuleWrapper} generated
|
||||
// in {CompileToModuleObject}.
|
||||
return ModuleCompiler::CompileToModuleObject(
|
||||
isolate, thrower, std::move(result.val), bytes_copy, Handle<Script>(),
|
||||
Vector<const byte>());
|
||||
}
|
||||
|
||||
MaybeHandle<WasmInstanceObject> SyncInstantiate(
|
||||
|
Loading…
Reference in New Issue
Block a user