mirror of git://gcc.gnu.org/git/gcc.git
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
This commit is contained in:
parent
5594a6c8c0
commit
abe2f66ab9
|
|
@ -1,3 +1,15 @@
|
||||||
|
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.
|
||||||
|
|
||||||
2007-04-16 Tom Tromey <tromey@redhat.com>
|
2007-04-16 Tom Tromey <tromey@redhat.com>
|
||||||
|
|
||||||
https://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=236614
|
https://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=236614
|
||||||
|
|
|
||||||
|
|
@ -138,21 +138,6 @@ public class ComponentGraphics extends CairoGraphics2D
|
||||||
hasLock.set(Integer.valueOf(i.intValue() - 1));
|
hasLock.set(Integer.valueOf(i.intValue() - 1));
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* Destroys the component surface and calls dispose on the cairo
|
|
||||||
* graphics2d to destroy any super class resources.
|
|
||||||
*/
|
|
||||||
public void dispose()
|
|
||||||
{
|
|
||||||
super.dispose();
|
|
||||||
disposeSurface(nativePointer);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Destroys the component surface.
|
|
||||||
*/
|
|
||||||
private native void disposeSurface(long nativePointer);
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Creates a cairo_t for a volatile image
|
* Creates a cairo_t for a volatile image
|
||||||
*/
|
*/
|
||||||
|
|
|
||||||
|
|
@ -11,7 +11,6 @@ extern "C"
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
JNIEXPORT jlong JNICALL Java_gnu_java_awt_peer_gtk_ComponentGraphics_initState (JNIEnv *env, jobject, jobject);
|
JNIEXPORT jlong JNICALL Java_gnu_java_awt_peer_gtk_ComponentGraphics_initState (JNIEnv *env, jobject, jobject);
|
||||||
JNIEXPORT void JNICALL Java_gnu_java_awt_peer_gtk_ComponentGraphics_disposeSurface (JNIEnv *env, jobject, jlong);
|
|
||||||
JNIEXPORT jlong JNICALL Java_gnu_java_awt_peer_gtk_ComponentGraphics_initFromVolatile (JNIEnv *env, jobject, jlong, jint, jint);
|
JNIEXPORT jlong JNICALL Java_gnu_java_awt_peer_gtk_ComponentGraphics_initFromVolatile (JNIEnv *env, jobject, jlong, jint, jint);
|
||||||
JNIEXPORT void JNICALL Java_gnu_java_awt_peer_gtk_ComponentGraphics_start_1gdk_1drawing (JNIEnv *env, jobject);
|
JNIEXPORT void JNICALL Java_gnu_java_awt_peer_gtk_ComponentGraphics_start_1gdk_1drawing (JNIEnv *env, jobject);
|
||||||
JNIEXPORT void JNICALL Java_gnu_java_awt_peer_gtk_ComponentGraphics_end_1gdk_1drawing (JNIEnv *env, jobject);
|
JNIEXPORT void JNICALL Java_gnu_java_awt_peer_gtk_ComponentGraphics_end_1gdk_1drawing (JNIEnv *env, jobject);
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,5 @@
|
||||||
/* gnu_java_awt_peer_gtk_ComponentGraphics.c
|
/* 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.
|
This file is part of GNU Classpath.
|
||||||
|
|
||||||
|
|
@ -159,40 +159,13 @@ Java_gnu_java_awt_peer_gtk_ComponentGraphics_initState
|
||||||
|
|
||||||
cr = cairo_create (surface);
|
cr = cairo_create (surface);
|
||||||
g_assert(cr != NULL);
|
g_assert(cr != NULL);
|
||||||
|
cairo_surface_destroy(surface);
|
||||||
|
|
||||||
gdk_threads_leave();
|
gdk_threads_leave();
|
||||||
|
|
||||||
return PTR_TO_JLONG(cr);
|
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
|
JNIEXPORT jlong JNICALL
|
||||||
Java_gnu_java_awt_peer_gtk_ComponentGraphics_initFromVolatile
|
Java_gnu_java_awt_peer_gtk_ComponentGraphics_initFromVolatile
|
||||||
(JNIEnv *env __attribute__ ((unused)), jobject obj __attribute__ ((unused)),
|
(JNIEnv *env __attribute__ ((unused)), jobject obj __attribute__ ((unused)),
|
||||||
|
|
@ -224,6 +197,7 @@ Java_gnu_java_awt_peer_gtk_ComponentGraphics_initFromVolatile
|
||||||
|
|
||||||
cr = cairo_create (surface);
|
cr = cairo_create (surface);
|
||||||
g_assert(cr != NULL);
|
g_assert(cr != NULL);
|
||||||
|
cairo_surface_destroy(surface);
|
||||||
|
|
||||||
gdk_threads_leave();
|
gdk_threads_leave();
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue