summaryrefslogtreecommitdiff
path: root/libjava/classpath
diff options
context:
space:
mode:
authorfitzsim <fitzsim@138bc75d-0d04-0410-961f-82ee72b054a4>2007-04-28 01:58:23 +0000
committerfitzsim <fitzsim@138bc75d-0d04-0410-961f-82ee72b054a4>2007-04-28 01:58:23 +0000
commit187386f3c3bb1259b23d25bbbc98210120eff7cc (patch)
treebd7fc58030fed2d59ec96166c27e6a9cfcd46c71 /libjava/classpath
parenta3779673d67c060df013c918ed022e5b828501c3 (diff)
downloadgcc-187386f3c3bb1259b23d25bbbc98210120eff7cc.tar.gz
2007-04-04 Francis Kung <fkung@redhat.com>
* gnu/java/awt/peer/gtk/ComponentGraphics.java (cairoDrawGlyphVector): Removed method. (cairoSetFont): Removed method. (disposeNative): Removed method. * native/jni/gtk-peer/gnu_java_awt_peer_gtk_CairoGraphics2D.c (Java_gnu_java_awt_peer_gtk_CairoGraphics2D_cairoDrawGlyphVector): Added locking. (Java_gnu_java_awt_peer_gtk_CairoGraphics2D_cairoSetFont): Added locking. (Java_gnu_java_awt_peer_gtk_CairoGraphics2D_disposeNative): Added locking. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@124251 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'libjava/classpath')
-rw-r--r--libjava/classpath/ChangeLog12
-rw-r--r--libjava/classpath/gnu/java/awt/peer/gtk/ComponentGraphics.java55
-rw-r--r--libjava/classpath/lib/gnu/java/awt/peer/gtk/ComponentGraphics.classbin17237 -> 16536 bytes
-rw-r--r--libjava/classpath/native/jni/gtk-peer/gnu_java_awt_peer_gtk_CairoGraphics2D.c10
4 files changed, 32 insertions, 45 deletions
diff --git a/libjava/classpath/ChangeLog b/libjava/classpath/ChangeLog
index 12c9b8b1d0e..ad9f9082912 100644
--- a/libjava/classpath/ChangeLog
+++ b/libjava/classpath/ChangeLog
@@ -1,3 +1,15 @@
+2007-04-04 Francis Kung <fkung@redhat.com>
+
+ * gnu/java/awt/peer/gtk/ComponentGraphics.java
+ (cairoDrawGlyphVector): Removed method.
+ (cairoSetFont): Removed method.
+ (disposeNative): Removed method.
+ * native/jni/gtk-peer/gnu_java_awt_peer_gtk_CairoGraphics2D.c
+ (Java_gnu_java_awt_peer_gtk_CairoGraphics2D_cairoDrawGlyphVector): Added
+ locking.
+ (Java_gnu_java_awt_peer_gtk_CairoGraphics2D_cairoSetFont): Added locking.
+ (Java_gnu_java_awt_peer_gtk_CairoGraphics2D_disposeNative): Added locking.
+
2007-04-27 Keith Seitz <keiths@redhat.com>
* gnu/classpath/jdwp/event/EventManager.java
diff --git a/libjava/classpath/gnu/java/awt/peer/gtk/ComponentGraphics.java b/libjava/classpath/gnu/java/awt/peer/gtk/ComponentGraphics.java
index be82f81ecbd..8adf275ad44 100644
--- a/libjava/classpath/gnu/java/awt/peer/gtk/ComponentGraphics.java
+++ b/libjava/classpath/gnu/java/awt/peer/gtk/ComponentGraphics.java
@@ -544,6 +544,17 @@ public class ComponentGraphics extends CairoGraphics2D
* methods ends up being called, we will deadlock. The lock is only reentrant
* when called via our lock() method.
*/
+
+ /* These methods are already locked in the superclass CairoGraphics2D
+ * so they do not need to be overridden:
+ *
+ * public void disposeNative
+ *
+ * protected void cairoDrawGlyphVector
+ *
+ * protected void cairoSetFont
+ */
+
@Override
protected long init(long pointer)
{
@@ -563,20 +574,6 @@ public class ComponentGraphics extends CairoGraphics2D
}
@Override
- public void disposeNative(long pointer)
- {
- try
- {
- lock();
- super.disposeNative(pointer);
- }
- finally
- {
- unlock();
- }
- }
-
- @Override
protected void drawPixels(long pointer, int[] pixels, int w, int h,
int stride, double[] i2u, double alpha,
int interpolation)
@@ -728,36 +725,6 @@ public class ComponentGraphics extends CairoGraphics2D
}
@Override
- protected void cairoDrawGlyphVector(long pointer, GdkFontPeer font,
- float x, float y, int n,
- int[] codes, float[] positions)
- {
- try
- {
- lock();
- super.cairoDrawGlyphVector(pointer, font, x, y, n, codes, positions);
- }
- finally
- {
- unlock();
- }
- }
-
- @Override
- protected void cairoSetFont(long pointer, GdkFontPeer font)
- {
- try
- {
- lock();
- super.cairoSetFont(pointer, font);
- }
- finally
- {
- unlock();
- }
- }
-
- @Override
protected void cairoRectangle(long pointer, double x, double y,
double width, double height)
{
diff --git a/libjava/classpath/lib/gnu/java/awt/peer/gtk/ComponentGraphics.class b/libjava/classpath/lib/gnu/java/awt/peer/gtk/ComponentGraphics.class
index 54e991629c5..c5d4d009094 100644
--- a/libjava/classpath/lib/gnu/java/awt/peer/gtk/ComponentGraphics.class
+++ b/libjava/classpath/lib/gnu/java/awt/peer/gtk/ComponentGraphics.class
Binary files differ
diff --git a/libjava/classpath/native/jni/gtk-peer/gnu_java_awt_peer_gtk_CairoGraphics2D.c b/libjava/classpath/native/jni/gtk-peer/gnu_java_awt_peer_gtk_CairoGraphics2D.c
index b183a1bac77..2da68e0e4e0 100644
--- a/libjava/classpath/native/jni/gtk-peer/gnu_java_awt_peer_gtk_CairoGraphics2D.c
+++ b/libjava/classpath/native/jni/gtk-peer/gnu_java_awt_peer_gtk_CairoGraphics2D.c
@@ -87,7 +87,11 @@ Java_gnu_java_awt_peer_gtk_CairoGraphics2D_disposeNative
return;
if (gr->cr)
- cairo_destroy (gr->cr);
+ {
+ gdk_threads_enter();
+ cairo_destroy (gr->cr);
+ gdk_threads_leave();
+ }
if (gr->pattern)
cairo_pattern_destroy (gr->pattern);
@@ -343,9 +347,11 @@ Java_gnu_java_awt_peer_gtk_CairoGraphics2D_cairoDrawGlyphVector
(*env)->ReleaseFloatArrayElements (env, java_positions, native_positions, 0);
(*env)->ReleaseIntArrayElements (env, java_codes, native_codes, 0);
+ gdk_threads_enter ();
pango_fc_font_lock_face( (PangoFcFont *)pfont->font );
cairo_show_glyphs (gr->cr, glyphs, n);
pango_fc_font_unlock_face( (PangoFcFont *)pfont->font );
+ gdk_threads_leave ();
g_free(glyphs);
}
@@ -367,6 +373,7 @@ Java_gnu_java_awt_peer_gtk_CairoGraphics2D_cairoSetFont
pfont = (struct peerfont *)NSA_GET_FONT_PTR (env, font);
g_assert (pfont != NULL);
+ gdk_threads_enter();
face = pango_fc_font_lock_face( (PangoFcFont *)pfont->font );
g_assert (face != NULL);
@@ -380,6 +387,7 @@ Java_gnu_java_awt_peer_gtk_CairoGraphics2D_cairoSetFont
cairo_font_face_destroy (ft);
pango_fc_font_unlock_face((PangoFcFont *)pfont->font);
+ gdk_threads_leave();
}
JNIEXPORT void JNICALL