From fd4eb77dc96bd9716d747ffb44becc9f7357b914 Mon Sep 17 00:00:00 2001 From: Deukhoofd Date: Tue, 7 Jun 2022 22:49:37 +0200 Subject: [PATCH] Removes WASM hack used for circumventing a wasmer 2.2.1 bug, as it's now resolved in 2.3.0 --- .../WASM/InterfaceMethods/WASMHelperFile.hpp | 6 ++---- src/ScriptResolving/WASM/WebAssemblyScriptResolver.cpp | 3 --- src/ScriptResolving/WASM/WebAssemblyScriptResolver.hpp | 5 ----- 3 files changed, 2 insertions(+), 12 deletions(-) diff --git a/src/ScriptResolving/WASM/InterfaceMethods/WASMHelperFile.hpp b/src/ScriptResolving/WASM/InterfaceMethods/WASMHelperFile.hpp index bb34f41..1d55c31 100644 --- a/src/ScriptResolving/WASM/InterfaceMethods/WASMHelperFile.hpp +++ b/src/ScriptResolving/WASM/InterfaceMethods/WASMHelperFile.hpp @@ -73,9 +73,7 @@ public: ~Env() {} }; - auto env = (Env*)malloc(sizeof(Env)); - new (env) Env{.Resolver = resolver, .Func = func}; - resolver->Temp_WasmerBug2_2_1_Bypass.Append(env); + auto env = new Env{.Resolver = resolver, .Func = func}; auto* f = wasm_func_new_with_env( resolver->GetStore(), funcType, [](void* env, const wasm_val_vec_t* parameters, wasm_val_vec_t* results) -> wasm_trap_t* { @@ -97,7 +95,7 @@ public: } return nullptr; }, - env, /*[](void*) { delete (Env*)env; }*/ nullptr); + env, [](void* env) { delete (Env*)env; }); wasm_functype_delete(funcType); return f; } diff --git a/src/ScriptResolving/WASM/WebAssemblyScriptResolver.cpp b/src/ScriptResolving/WASM/WebAssemblyScriptResolver.cpp index d7baa0a..79c7062 100644 --- a/src/ScriptResolving/WASM/WebAssemblyScriptResolver.cpp +++ b/src/ScriptResolving/WASM/WebAssemblyScriptResolver.cpp @@ -17,9 +17,6 @@ WebAssemblyScriptResolver::~WebAssemblyScriptResolver() { for (auto& import : _imports) { wasm_func_delete(import.second); } - for (auto e : Temp_WasmerBug2_2_1_Bypass) { - free(e); - } if (_instance != nullptr) { wasm_instance_delete(_instance); } diff --git a/src/ScriptResolving/WASM/WebAssemblyScriptResolver.hpp b/src/ScriptResolving/WASM/WebAssemblyScriptResolver.hpp index 8761fbb..18419f6 100644 --- a/src/ScriptResolving/WASM/WebAssemblyScriptResolver.hpp +++ b/src/ScriptResolving/WASM/WebAssemblyScriptResolver.hpp @@ -52,11 +52,6 @@ public: inline void RemoveRegisteredScript(i32 wasmPtr) { _loadedScripts.Remove(wasmPtr); } - // HACK: This is a temporary way to bypass a bug in wasmer 2.2.1. As finalizers on wasm_func_new_with_env are called - // twice, the environment objects of WasmHelpers::CreateFunc are deleted twice. This causes major issues. This - // should be fixed in the next wasmer release. - ArbUt::List Temp_WasmerBug2_2_1_Bypass; - private: wasm_engine_t* _engine; wasm_store_t* _store;