Merge pull request #680 from AustinWise/austin/FixGcHole

[dotnet] Root bindings so the delegate in FunctionBinding is not GCed
This commit is contained in:
Peter Huene
2019-12-05 20:54:45 -08:00
committed by GitHub

View File

@@ -17,8 +17,10 @@ namespace Wasmtime
Host = host;
Module = module;
var bindings = host.GetImportBindings(module);
var handles = bindings.Select(b => b.Bind(module.Store, host)).ToList();
//Save the bindings to root the objects.
//Otherwise the GC may collect the delegates from ExternFunction for example.
_bindings = host.GetImportBindings(module);
var handles = _bindings.Select(b => b.Bind(module.Store, host)).ToList();
unsafe
{
@@ -141,5 +143,6 @@ namespace Wasmtime
private Interop.wasm_extern_vec_t _externs;
private Dictionary<string, ExternFunction> _functions;
private Dictionary<string, ExternGlobal> _globals;
private List<Bindings.Binding> _bindings;
}
}