summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMark Wielaard <mark@klomp.org>2006-11-25 22:19:38 +0000
committerMark Wielaard <mark@klomp.org>2006-11-25 22:19:38 +0000
commit6767daef55e6b33a5428eb792dcf98c39ef7e115 (patch)
tree5760eba5531c16851f8918a50c494c4ac6d83e20
parentc63e4bad2a93744fd6c6cb5966c20b2ce544bc4b (diff)
downloadclasspath-6767daef55e6b33a5428eb792dcf98c39ef7e115.tar.gz
2006-11-25 Mark Wielaard <mark@klomp.org>
* gnu/java/awt/peer/gtk/CairoGraphics2D.java (drawGlyphVector): Synchronize on font peer. (setFont): Likewise. * gnu/java/awt/peer/gtk/GdkFontPeer.java (getFontMetrics): Mark synchronized. (getTextMetrics): Likewise.
-rw-r--r--ChangeLog9
-rw-r--r--gnu/java/awt/peer/gtk/CairoGraphics2D.java13
-rw-r--r--gnu/java/awt/peer/gtk/GdkFontPeer.java4
3 files changed, 20 insertions, 6 deletions
diff --git a/ChangeLog b/ChangeLog
index 7bd9bdb0b..23464a7d2 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,12 @@
+2006-11-25 Mark Wielaard <mark@klomp.org>
+
+ * gnu/java/awt/peer/gtk/CairoGraphics2D.java (drawGlyphVector):
+ Synchronize on font peer.
+ (setFont): Likewise.
+ * gnu/java/awt/peer/gtk/GdkFontPeer.java (getFontMetrics): Mark
+ synchronized.
+ (getTextMetrics): Likewise.
+
2006-11-25 Roman Kennke <kennke@aicas.com>
* javax/swing/text/GapContent.java
diff --git a/gnu/java/awt/peer/gtk/CairoGraphics2D.java b/gnu/java/awt/peer/gtk/CairoGraphics2D.java
index 97e9b3bf6..c68bccb8d 100644
--- a/gnu/java/awt/peer/gtk/CairoGraphics2D.java
+++ b/gnu/java/awt/peer/gtk/CairoGraphics2D.java
@@ -1676,9 +1676,10 @@ public abstract class CairoGraphics2D extends Graphics2D
float[] positions = gv.getGlyphPositions (0, n, null);
setFont (gv.getFont ());
- synchronized( this.font )
+ GdkFontPeer fontPeer = (GdkFontPeer) font.getPeer();
+ synchronized (fontPeer)
{
- cairoDrawGlyphVector(nativePointer, (GdkFontPeer)getFont().getPeer(),
+ cairoDrawGlyphVector(nativePointer, fontPeer,
x, y, n, codes, positions);
}
}
@@ -1733,7 +1734,11 @@ public abstract class CairoGraphics2D extends Graphics2D
((ClasspathToolkit)(Toolkit.getDefaultToolkit()))
.getFont(f.getName(), f.getAttributes());
- cairoSetFont(nativePointer, (GdkFontPeer)getFont().getPeer());
+ GdkFontPeer fontpeer = (GdkFontPeer) getFont().getPeer();
+ synchronized (fontpeer)
+ {
+ cairoSetFont(nativePointer, fontpeer);
+ }
}
public Font getFont()
@@ -2046,4 +2051,4 @@ public abstract class CairoGraphics2D extends Graphics2D
return rect;
}
-} \ No newline at end of file
+}
diff --git a/gnu/java/awt/peer/gtk/GdkFontPeer.java b/gnu/java/awt/peer/gtk/GdkFontPeer.java
index 28975991b..5f5126ac5 100644
--- a/gnu/java/awt/peer/gtk/GdkFontPeer.java
+++ b/gnu/java/awt/peer/gtk/GdkFontPeer.java
@@ -176,8 +176,8 @@ public class GdkFontPeer extends ClasspathFontPeer
private native void dispose ();
private native void setFont (String family, int style, int size);
- native void getFontMetrics(double [] metrics);
- native void getTextMetrics(String str, double [] metrics);
+ native synchronized void getFontMetrics(double [] metrics);
+ native synchronized void getTextMetrics(String str, double [] metrics);
native void releasePeerGraphicsResource();