From 4ec5e9994fe29dfe9f5f828f73640ce95882c6ee Mon Sep 17 00:00:00 2001 From: Brian Matzon Date: Sat, 19 May 2007 20:40:04 +0000 Subject: [PATCH] moved invalidation into sycnhronized block --- src/java/org/lwjgl/openal/ALC10.java | 10 ++++++---- src/java/org/lwjgl/openal/ALC11.java | 2 +- 2 files changed, 7 insertions(+), 5 deletions(-) diff --git a/src/java/org/lwjgl/openal/ALC10.java b/src/java/org/lwjgl/openal/ALC10.java index ac66dcfd..7e289c7b 100644 --- a/src/java/org/lwjgl/openal/ALC10.java +++ b/src/java/org/lwjgl/openal/ALC10.java @@ -221,8 +221,8 @@ public final class ALC10 { */ public static boolean alcCloseDevice(ALCdevice device) { boolean result = nalcCloseDevice(getDevice(device)); - device.setInvalid(); synchronized (devices) { + device.setInvalid(); devices.remove(new Long(device.device)); } return result; @@ -253,8 +253,8 @@ public final class ALC10 { ALCcontext context = new ALCcontext(context_address); synchronized (ALC10.contexts) { contexts.put(new Long(context_address), context); + device.addContext(context); } - device.addContext(context); return context; } return null; @@ -356,8 +356,10 @@ public final class ALC10 { * @param context address of context to Destroy */ public static void alcDestroyContext(ALCcontext context) { - nalcDestroyContext(getContext(context)); - context.setInvalid(); + synchronized(ALC10.contexts) { + nalcDestroyContext(getContext(context)); + context.setInvalid(); + } } native static void nalcDestroyContext(long context); diff --git a/src/java/org/lwjgl/openal/ALC11.java b/src/java/org/lwjgl/openal/ALC11.java index 98553e4c..031a1b8f 100644 --- a/src/java/org/lwjgl/openal/ALC11.java +++ b/src/java/org/lwjgl/openal/ALC11.java @@ -109,8 +109,8 @@ public final class ALC11 { */ public static boolean alcCaptureCloseDevice(ALCdevice device) { boolean result = nalcCaptureCloseDevice(ALC10.getDevice(device)); - device.setInvalid(); synchronized (ALC10.devices) { + device.setInvalid(); ALC10.devices.remove(new Long(device.device)); } return result;