commit-classpath
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[commit-cp] classpath ChangeLog gnu/java/awt/peer/gtk/Compo...


From: Mark Wielaard
Subject: [commit-cp] classpath ChangeLog gnu/java/awt/peer/gtk/Compo...
Date: Mon, 12 Jun 2006 12:25:04 +0000

CVSROOT:        /cvsroot/classpath
Module name:    classpath
Changes by:     Mark Wielaard <mark>    06/06/12 12:25:03

Modified files:
        .              : ChangeLog 
        gnu/java/awt/peer/gtk: ComponentGraphics.java 

Log message:
               * gnu/java/awt/peer/gtk/ComponentGraphics.java (hasLock):
               New static field.
               (ONE): Likewise.
               (lock): New method.
               (unlock): Likewise.
               (draw): Use lock() and unlock().
               (fill): Likewise.
               (drawRenderedImage): Likewise.
               (drawImage): Likewise.
               (drawGlyphVector): Likewise.

CVSWeb URLs:
http://cvs.savannah.gnu.org/viewcvs/classpath/ChangeLog?cvsroot=classpath&r1=1.7779&r2=1.7780
http://cvs.savannah.gnu.org/viewcvs/classpath/gnu/java/awt/peer/gtk/ComponentGraphics.java?cvsroot=classpath&r1=1.13&r2=1.14

Patches:
Index: ChangeLog
===================================================================
RCS file: /cvsroot/classpath/classpath/ChangeLog,v
retrieving revision 1.7779
retrieving revision 1.7780
diff -u -b -r1.7779 -r1.7780
--- ChangeLog   12 Jun 2006 10:32:44 -0000      1.7779
+++ ChangeLog   12 Jun 2006 12:25:00 -0000      1.7780
@@ -1,3 +1,16 @@
+2006-06-12  Mark Wielaard  <address@hidden>
+
+       * gnu/java/awt/peer/gtk/ComponentGraphics.java (hasLock):
+       New static field.
+       (ONE): Likewise.
+       (lock): New method.
+       (unlock): Likewise.
+       (draw): Use lock() and unlock().
+       (fill): Likewise.
+       (drawRenderedImage): Likewise.
+       (drawImage): Likewise.
+       (drawGlyphVector): Likewise.
+
 2006-06-12  Roman Kennke  <address@hidden>
 
        * gnu/java/awt/peer/gtk/CairoGraphics2D.java

Index: gnu/java/awt/peer/gtk/ComponentGraphics.java
===================================================================
RCS file: 
/cvsroot/classpath/classpath/gnu/java/awt/peer/gtk/ComponentGraphics.java,v
retrieving revision 1.13
retrieving revision 1.14
diff -u -b -r1.13 -r1.14
--- gnu/java/awt/peer/gtk/ComponentGraphics.java        11 Jun 2006 11:21:52 
-0000      1.13
+++ gnu/java/awt/peer/gtk/ComponentGraphics.java        12 Jun 2006 12:25:03 
-0000      1.14
@@ -67,6 +67,35 @@
   private GtkComponentPeer component;
   protected long cairo_t;
 
+  private static ThreadLocal hasLock = new ThreadLocal();
+  private static Integer ONE = Integer.valueOf(1);
+
+  private void lock()
+  {
+    Integer i = (Integer) hasLock.get();
+    if (i == null)
+      {
+       start_gdk_drawing();
+       hasLock.set(ONE);
+      }
+    else
+      hasLock.set(Integer.valueOf(i.intValue() + 1));
+  }
+
+  private void unlock()
+  {
+    Integer i = (Integer) hasLock.get();
+    if (i == null)
+      throw new IllegalStateException();
+    if (i == ONE)
+      {
+       hasLock.set(null);
+       end_gdk_drawing();
+      }
+    else
+      hasLock.set(Integer.valueOf(i.intValue() - 1));
+  }
+
   ComponentGraphics()
   {
   }
@@ -180,40 +209,40 @@
    */
   public void draw(Shape s)
   {
-    start_gdk_drawing();
+    lock();
     try
       {
        super.draw(s);
       }
     finally
       {
-       end_gdk_drawing();
+       unlock();
       }
   }
 
   public void fill(Shape s)
   {
-    start_gdk_drawing();
+    lock();
     try
       {
        super.fill(s);
       }
     finally
       {
-       end_gdk_drawing();
+       unlock();
       }
   }
 
   public void drawRenderedImage(RenderedImage image, AffineTransform xform)
   {
-    start_gdk_drawing();
+    lock();
     try
       {
        super.drawRenderedImage(image, xform);
       }
     finally
       {
-       end_gdk_drawing();
+       unlock();
       }
   }
 
@@ -221,28 +250,28 @@
                              Color bgcolor, ImageObserver obs)
   {
     boolean rv;
-    start_gdk_drawing();
+    lock();
     try
       {
        rv = super.drawImage(img, xform, bgcolor, obs);
       }
     finally
       {
-       end_gdk_drawing();
+       unlock();
       }
     return rv;
   }
 
   public void drawGlyphVector(GlyphVector gv, float x, float y)
   {
-    start_gdk_drawing();
+    lock();
     try
       {
        super.drawGlyphVector(gv, x, y);
       }
     finally
       {
-       end_gdk_drawing();
+       unlock();
       }
   }
   




reply via email to

[Prev in Thread] Current Thread [Next in Thread]