diff options
author | Mark Wielaard <mark@klomp.org> | 2006-11-25 22:19:38 +0000 |
---|---|---|
committer | Mark Wielaard <mark@klomp.org> | 2006-11-25 22:19:38 +0000 |
commit | 6767daef55e6b33a5428eb792dcf98c39ef7e115 (patch) | |
tree | 5760eba5531c16851f8918a50c494c4ac6d83e20 | |
parent | c63e4bad2a93744fd6c6cb5966c20b2ce544bc4b (diff) | |
download | classpath-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-- | ChangeLog | 9 | ||||
-rw-r--r-- | gnu/java/awt/peer/gtk/CairoGraphics2D.java | 13 | ||||
-rw-r--r-- | gnu/java/awt/peer/gtk/GdkFontPeer.java | 4 |
3 files changed, 20 insertions, 6 deletions
@@ -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(); |