[Top][All Lists]
[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();
}
}