aboutsummaryrefslogtreecommitdiffstats
path: root/Alc/ALc.c
diff options
context:
space:
mode:
Diffstat (limited to 'Alc/ALc.c')
-rw-r--r--Alc/ALc.c9
1 files changed, 3 insertions, 6 deletions
diff --git a/Alc/ALc.c b/Alc/ALc.c
index df2ba12c..6ce6feaa 100644
--- a/Alc/ALc.c
+++ b/Alc/ALc.c
@@ -2147,17 +2147,14 @@ ALC_API ALCvoid ALC_APIENTRY alcDestroyContext(ALCcontext *context)
}
UnlockDevice(Device);
+ if(CompExchangePtr((void**)&GlobalContext, context, NULL))
+ ALCcontext_DecRef(context);
+
if(Device->NumContexts == 0)
{
ALCdevice_StopPlayback(Device);
Device->Flags &= ~DEVICE_RUNNING;
}
-
- if(GlobalContext == context)
- {
- GlobalContext = NULL;
- ALCcontext_DecRef(context);
- }
UnlockLists();
ALCcontext_DecRef(context);