[AL] Fix runtime crash when OpenAL not available

Issue reported at http://www.opentk.com/node/3805

We must not throw exceptions from a finalizer, as this leads to the
runtime forcibly taking down the application.
This commit is contained in:
thefiddler 2014-09-29 23:37:40 +02:00
parent e06fc9fb0a
commit 9851a3bab9

View file

@ -204,12 +204,22 @@ namespace OpenTK.Audio
{
Debug.Unindent();
// clean up the dummy context
Alc.MakeContextCurrent(ContextHandle.Zero);
if (dummy_context != ContextHandle.Zero && dummy_context.Handle != IntPtr.Zero)
Alc.DestroyContext(dummy_context);
if (dummy_device != IntPtr.Zero)
Alc.CloseDevice(dummy_device);
if (openal_supported)
{
try
{
// clean up the dummy context
Alc.MakeContextCurrent(ContextHandle.Zero);
if (dummy_context != ContextHandle.Zero && dummy_context.Handle != IntPtr.Zero)
Alc.DestroyContext(dummy_context);
if (dummy_device != IntPtr.Zero)
Alc.CloseDevice(dummy_device);
}
catch
{
openal_supported = false;
}
}
}
}