libbluray | branch: master | hpi1 <[email protected]> | Tue Jun 11 11:33:36 
2013 +0300| [0dac49fdbd11b169c5453a9767827bfb70a624cf] | committer: hpi1

Fixed root window shutdown sequence. MAke sure overlay is always closed. Do not 
allow overlay updates after window has been disposed.

> http://git.videolan.org/gitweb.cgi/libbluray.git/?a=commit;h=0dac49fdbd11b169c5453a9767827bfb70a624cf
---

 src/libbluray/bdj/java/java/awt/BDRootWindow.java |   23 ++++++++++++++-------
 1 file changed, 15 insertions(+), 8 deletions(-)

diff --git a/src/libbluray/bdj/java/java/awt/BDRootWindow.java 
b/src/libbluray/bdj/java/java/awt/BDRootWindow.java
index b49de44..112b087 100644
--- a/src/libbluray/bdj/java/java/awt/BDRootWindow.java
+++ b/src/libbluray/bdj/java/java/awt/BDRootWindow.java
@@ -66,6 +66,10 @@ public class BDRootWindow extends Frame {
             return;
         }
         synchronized (this) {
+            if (timer == null) {
+                
org.videolan.Logger.getLogger("BDRootWindow").error("notifyChanged(): window 
already disposed");
+                return;
+            }
             changeCount++;
             if (timerTask == null) {
                 timerTask = new RefreshTimerTask(this);
@@ -145,17 +149,20 @@ public class BDRootWindow extends Frame {
 
     public void dispose()
     {
+        synchronized (this) {
+            if (timerTask != null) {
+                timerTask.cancel();
+                timerTask = null;
+            }
+            if (timer != null) {
+                timer.cancel();
+                timer = null;
+            }
+        }
+
         if (isVisible()) {
             hide();
         }
-        if (timerTask != null) {
-            timerTask.cancel();
-            timerTask = null;
-        }
-        if (timer != null) {
-            timer.cancel();
-            timer = null;
-        }
 
         BDToolkit.setFocusedWindow(null);
 

_______________________________________________
libbluray-devel mailing list
[email protected]
http://mailman.videolan.org/listinfo/libbluray-devel

Reply via email to