aboutsummaryrefslogtreecommitdiff
path: root/libjava/classpath/native
diff options
context:
space:
mode:
authorFrancis Kung <fkung@redhat.com>2007-04-17 20:15:53 +0000
committerThomas Fitzsimmons <fitzsim@gcc.gnu.org>2007-04-17 20:15:53 +0000
commitabe2f66ab9f4840008c43a61596eebd42af7842b (patch)
tree2a9bf0482db315956df7cf772dc3988469964047 /libjava/classpath/native
parent5594a6c8c051051e68c1dad0feec273eac4aa5d0 (diff)
downloadgcc-abe2f66ab9f4840008c43a61596eebd42af7842b.zip
gcc-abe2f66ab9f4840008c43a61596eebd42af7842b.tar.gz
gcc-abe2f66ab9f4840008c43a61596eebd42af7842b.tar.bz2
re PR awt/31311 (Quitting applet can hang X server)
2007-04-17 Francis Kung <fkung@redhat.com> PR classpath/31311 * gnu/java/awt/peer/gtk/ComponentGraphics.java (dispose): Removed method. (disposeSurface): Removed method. * gnu_java_awt_peer_gtk_ComponentGraphics.h: Regenerated. * native/jni/gtk-peer/gnu_java_awt_peer_gtk_ComponentGraphics.c (Java_gnu_java_awt_peer_gtk_ComponentGraphics_disposeSurface): Removed. (Java_gnu_java_awt_peer_gtk_ComponentGraphics_initState): Destroy surface after it is used to create a cairo context. From-SVN: r123928
Diffstat (limited to 'libjava/classpath/native')
-rw-r--r--libjava/classpath/native/jni/gtk-peer/gnu_java_awt_peer_gtk_ComponentGraphics.c32
1 files changed, 3 insertions, 29 deletions
diff --git a/libjava/classpath/native/jni/gtk-peer/gnu_java_awt_peer_gtk_ComponentGraphics.c b/libjava/classpath/native/jni/gtk-peer/gnu_java_awt_peer_gtk_ComponentGraphics.c
index 25163cd..ed9cf3d 100644
--- a/libjava/classpath/native/jni/gtk-peer/gnu_java_awt_peer_gtk_ComponentGraphics.c
+++ b/libjava/classpath/native/jni/gtk-peer/gnu_java_awt_peer_gtk_ComponentGraphics.c
@@ -1,5 +1,5 @@
/* gnu_java_awt_peer_gtk_ComponentGraphics.c
- Copyright (C) 2006 Free Software Foundation, Inc.
+ Copyright (C) 2006, 2007 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -159,40 +159,13 @@ Java_gnu_java_awt_peer_gtk_ComponentGraphics_initState
cr = cairo_create (surface);
g_assert(cr != NULL);
+ cairo_surface_destroy(surface);
gdk_threads_leave();
return PTR_TO_JLONG(cr);
}
-/**
- * Disposes of the surface
- */
-JNIEXPORT void JNICALL
-Java_gnu_java_awt_peer_gtk_ComponentGraphics_disposeSurface
- (JNIEnv *env __attribute__((unused)), jobject obj __attribute__((unused)),
- jlong value)
-{
- struct cairographics2d *gr;
- cairo_surface_t *surface;
-
- gr = JLONG_TO_PTR(struct cairographics2d, value);
-
- if (gr == NULL)
- return;
-
- if (gr->cr == NULL)
- return;
-
- surface = cairo_get_target (gr->cr);
- if (surface != NULL)
- {
- gdk_threads_enter();
- cairo_surface_destroy (surface);
- gdk_threads_leave();
- }
-}
-
JNIEXPORT jlong JNICALL
Java_gnu_java_awt_peer_gtk_ComponentGraphics_initFromVolatile
(JNIEnv *env __attribute__ ((unused)), jobject obj __attribute__ ((unused)),
@@ -224,6 +197,7 @@ Java_gnu_java_awt_peer_gtk_ComponentGraphics_initFromVolatile
cr = cairo_create (surface);
g_assert(cr != NULL);
+ cairo_surface_destroy(surface);
gdk_threads_leave();