From 4f27bcecf7484dc041551f52a5c49e2884cb3867 Mon Sep 17 00:00:00 2001 From: Sven Gothel Date: Thu, 28 Jun 2012 21:46:10 +0200 Subject: AWT/SWT GLCanvas: Remove volatile of context instance, use drawable instance's volatile 'feature' --- src/jogl/classes/com/jogamp/opengl/swt/GLCanvas.java | 4 ++-- src/jogl/classes/javax/media/opengl/awt/GLCanvas.java | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/src/jogl/classes/com/jogamp/opengl/swt/GLCanvas.java b/src/jogl/classes/com/jogamp/opengl/swt/GLCanvas.java index 7e1b69823..920e63421 100644 --- a/src/jogl/classes/com/jogamp/opengl/swt/GLCanvas.java +++ b/src/jogl/classes/com/jogamp/opengl/swt/GLCanvas.java @@ -109,7 +109,7 @@ public class GLCanvas extends Canvas implements GLAutoDrawable { /* GL Stuff */ private final GLDrawableHelper drawableHelper = new GLDrawableHelper(); private volatile GLDrawable drawable; // volatile avoids locking all accessors. FIXME still need to sync destroy/display - private volatile GLContext context; // volatile avoids locking all accessors. FIXME still need to sync destroy/display + private GLContext context; /* Native window surface */ private AbstractGraphicsDevice device; @@ -454,7 +454,7 @@ public class GLCanvas extends Canvas implements GLAutoDrawable { @Override public void dispose() { - if (null != context) { + if (null != drawable && null != context) { // drawable is volatile! boolean animatorPaused = false; final GLAnimatorControl animator = getAnimator(); if (null != animator) { diff --git a/src/jogl/classes/javax/media/opengl/awt/GLCanvas.java b/src/jogl/classes/javax/media/opengl/awt/GLCanvas.java index bdfa11959..71026a247 100644 --- a/src/jogl/classes/javax/media/opengl/awt/GLCanvas.java +++ b/src/jogl/classes/javax/media/opengl/awt/GLCanvas.java @@ -156,7 +156,7 @@ public class GLCanvas extends Canvas implements AWTGLAutoDrawable, WindowClosing private final GLDrawableHelper drawableHelper = new GLDrawableHelper(); private AWTGraphicsConfiguration awtConfig; private volatile GLDrawable drawable; // volatile avoids locking all accessors. FIXME still need to sync destroy/display - private volatile GLContextImpl context; // volatile avoids locking all accessors. FIXME still need to sync destroy/display + private GLContextImpl context; private boolean sendReshape = false; // copy of the cstr args, mainly for recreation @@ -436,7 +436,7 @@ public class GLCanvas extends Canvas implements AWTGLAutoDrawable, WindowClosing Thread.dumpStack(); } - if(null!=context) { + if(null!=drawable && null!=context) { // drawable is volatile! boolean animatorPaused = false; if(null!=animator) { // can't remove us from animator for recreational addNotify() -- cgit v1.2.3