mirror of
git://gcc.gnu.org/git/gcc.git
synced 2025-01-26 02:24:01 +08:00
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. From-SVN: r124251
This commit is contained in:
parent
9898e8391f
commit
a6ee54a636
@ -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
|
||||
|
@ -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)
|
||||
{
|
||||
@ -562,20 +573,6 @@ public class ComponentGraphics extends CairoGraphics2D
|
||||
return ret;
|
||||
}
|
||||
|
||||
@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,
|
||||
@ -727,36 +724,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)
|
||||
|
Binary file not shown.
@ -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
|
||||
|
Loading…
Reference in New Issue
Block a user