mirror of git://gcc.gnu.org/git/gcc.git
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>
|
2007-04-27 Keith Seitz <keiths@redhat.com>
|
||||||
|
|
||||||
* gnu/classpath/jdwp/event/EventManager.java
|
* 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
|
* methods ends up being called, we will deadlock. The lock is only reentrant
|
||||||
* when called via our lock() method.
|
* 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
|
@Override
|
||||||
protected long init(long pointer)
|
protected long init(long pointer)
|
||||||
{
|
{
|
||||||
|
@ -562,20 +573,6 @@ public class ComponentGraphics extends CairoGraphics2D
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
|
||||||
public void disposeNative(long pointer)
|
|
||||||
{
|
|
||||||
try
|
|
||||||
{
|
|
||||||
lock();
|
|
||||||
super.disposeNative(pointer);
|
|
||||||
}
|
|
||||||
finally
|
|
||||||
{
|
|
||||||
unlock();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected void drawPixels(long pointer, int[] pixels, int w, int h,
|
protected void drawPixels(long pointer, int[] pixels, int w, int h,
|
||||||
int stride, double[] i2u, double alpha,
|
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
|
@Override
|
||||||
protected void cairoRectangle(long pointer, double x, double y,
|
protected void cairoRectangle(long pointer, double x, double y,
|
||||||
double width, double height)
|
double width, double height)
|
||||||
|
|
Binary file not shown.
|
@ -87,7 +87,11 @@ Java_gnu_java_awt_peer_gtk_CairoGraphics2D_disposeNative
|
||||||
return;
|
return;
|
||||||
|
|
||||||
if (gr->cr)
|
if (gr->cr)
|
||||||
cairo_destroy (gr->cr);
|
{
|
||||||
|
gdk_threads_enter();
|
||||||
|
cairo_destroy (gr->cr);
|
||||||
|
gdk_threads_leave();
|
||||||
|
}
|
||||||
|
|
||||||
if (gr->pattern)
|
if (gr->pattern)
|
||||||
cairo_pattern_destroy (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)->ReleaseFloatArrayElements (env, java_positions, native_positions, 0);
|
||||||
(*env)->ReleaseIntArrayElements (env, java_codes, native_codes, 0);
|
(*env)->ReleaseIntArrayElements (env, java_codes, native_codes, 0);
|
||||||
|
|
||||||
|
gdk_threads_enter ();
|
||||||
pango_fc_font_lock_face( (PangoFcFont *)pfont->font );
|
pango_fc_font_lock_face( (PangoFcFont *)pfont->font );
|
||||||
cairo_show_glyphs (gr->cr, glyphs, n);
|
cairo_show_glyphs (gr->cr, glyphs, n);
|
||||||
pango_fc_font_unlock_face( (PangoFcFont *)pfont->font );
|
pango_fc_font_unlock_face( (PangoFcFont *)pfont->font );
|
||||||
|
gdk_threads_leave ();
|
||||||
|
|
||||||
g_free(glyphs);
|
g_free(glyphs);
|
||||||
}
|
}
|
||||||
|
@ -367,6 +373,7 @@ Java_gnu_java_awt_peer_gtk_CairoGraphics2D_cairoSetFont
|
||||||
pfont = (struct peerfont *)NSA_GET_FONT_PTR (env, font);
|
pfont = (struct peerfont *)NSA_GET_FONT_PTR (env, font);
|
||||||
g_assert (pfont != NULL);
|
g_assert (pfont != NULL);
|
||||||
|
|
||||||
|
gdk_threads_enter();
|
||||||
face = pango_fc_font_lock_face( (PangoFcFont *)pfont->font );
|
face = pango_fc_font_lock_face( (PangoFcFont *)pfont->font );
|
||||||
g_assert (face != NULL);
|
g_assert (face != NULL);
|
||||||
|
|
||||||
|
@ -380,6 +387,7 @@ Java_gnu_java_awt_peer_gtk_CairoGraphics2D_cairoSetFont
|
||||||
|
|
||||||
cairo_font_face_destroy (ft);
|
cairo_font_face_destroy (ft);
|
||||||
pango_fc_font_unlock_face((PangoFcFont *)pfont->font);
|
pango_fc_font_unlock_face((PangoFcFont *)pfont->font);
|
||||||
|
gdk_threads_leave();
|
||||||
}
|
}
|
||||||
|
|
||||||
JNIEXPORT void JNICALL
|
JNIEXPORT void JNICALL
|
||||||
|
|
Loading…
Reference in New Issue