Index: test/common/wasm/wasm-module-runner.cc |
diff --git a/test/common/wasm/wasm-module-runner.cc b/test/common/wasm/wasm-module-runner.cc |
index 2eece57184a2db530314eeab35481c233a900ea1..01c4b624b09a08e542acbcf46db826b17e56e8f1 100644 |
--- a/test/common/wasm/wasm-module-runner.cc |
+++ b/test/common/wasm/wasm-module-runner.cc |
@@ -23,7 +23,7 @@ uint32_t GetMinModuleMemSize(const WasmModule* module) { |
return WasmModule::kPageSize * module->min_mem_pages; |
} |
-const WasmModule* DecodeWasmModuleForTesting(Isolate* isolate, Zone* zone, |
+const WasmModule* DecodeWasmModuleForTesting(Isolate* isolate, |
ErrorThrower* thrower, |
const byte* module_start, |
const byte* module_end, |
@@ -31,18 +31,19 @@ const WasmModule* DecodeWasmModuleForTesting(Isolate* isolate, Zone* zone, |
// Decode the module, but don't verify function bodies, since we'll |
// be compiling them anyway. |
ModuleResult decoding_result = |
- DecodeWasmModule(isolate, zone, module_start, module_end, false, origin); |
+ DecodeWasmModule(isolate, module_start, module_end, false, origin); |
- std::unique_ptr<const WasmModule> module(decoding_result.val); |
if (decoding_result.failed()) { |
// Module verification failed. throw. |
thrower->CompileError("WASM.compileRun() failed: %s", |
decoding_result.error_msg.get()); |
- return nullptr; |
} |
- if (thrower->error()) return nullptr; |
- return module.release(); |
+ if (thrower->error()) { |
+ if (decoding_result.val) delete decoding_result.val; |
+ return nullptr; |
+ } |
+ return decoding_result.val; |
} |
const Handle<JSObject> InstantiateModuleForTesting(Isolate* isolate, |
@@ -78,16 +79,16 @@ const Handle<JSObject> InstantiateModuleForTesting(Isolate* isolate, |
} |
const Handle<JSObject> CompileInstantiateWasmModuleForTesting( |
- Isolate* isolate, ErrorThrower* thrower, Zone* zone, |
- const byte* module_start, const byte* module_end, ModuleOrigin origin) { |
- std::unique_ptr<const WasmModule> module(DecodeWasmModuleForTesting( |
- isolate, zone, thrower, module_start, module_end, origin)); |
+ Isolate* isolate, ErrorThrower* thrower, const byte* module_start, |
+ const byte* module_end, ModuleOrigin origin) { |
+ const WasmModule* module = DecodeWasmModuleForTesting( |
+ isolate, thrower, module_start, module_end, origin); |
if (module == nullptr) { |
thrower->CompileError("Wasm module decoding failed"); |
return Handle<JSObject>::null(); |
} |
- return InstantiateModuleForTesting(isolate, thrower, module.get()); |
+ return InstantiateModuleForTesting(isolate, thrower, module); |
} |
int32_t RunWasmModuleForTesting(Isolate* isolate, Handle<JSObject> instance, |
@@ -102,10 +103,9 @@ int32_t RunWasmModuleForTesting(Isolate* isolate, Handle<JSObject> instance, |
int32_t CompileAndRunWasmModule(Isolate* isolate, const byte* module_start, |
const byte* module_end, ModuleOrigin origin) { |
HandleScope scope(isolate); |
- Zone zone(isolate->allocator(), ZONE_NAME); |
ErrorThrower thrower(isolate, "CompileAndRunWasmModule"); |
Handle<JSObject> instance = CompileInstantiateWasmModuleForTesting( |
- isolate, &thrower, &zone, module_start, module_end, origin); |
+ isolate, &thrower, module_start, module_end, origin); |
if (instance.is_null()) { |
return -1; |
} |