protected override void Dispose(bool disposing) { if (disposing) { if (linker != null) { linker.Dispose(); linker = null; } } base.Dispose(disposing); }
/// <summary> /// Clears all existing definitions in the host. /// </summary> public void ClearDefinitions() { CheckDisposed(); var linker = Interop.wasmtime_linker_new(Store); if (linker.IsInvalid) { throw new WasmtimeException("Failed to create Wasmtime linker."); } Interop.wasmtime_linker_allow_shadowing(linker, allowShadowing: true); Linker.Dispose(); Linker = linker; }
/// <inheritdoc/> public void Dispose() { if (!Linker.IsInvalid) { Linker.Dispose(); Linker.SetHandleAsInvalid(); } if (!Store.IsInvalid) { Store.Dispose(); Store.SetHandleAsInvalid(); } if (!Engine.IsInvalid) { Engine.Dispose(); Engine.SetHandleAsInvalid(); } }