re PR awt/31311 (Quitting applet can hang X server)
authorFrancis Kung <fkung@redhat.com>
Tue, 17 Apr 2007 20:15:53 +0000 (20:15 +0000)
committerThomas Fitzsimmons <fitzsim@gcc.gnu.org>
Tue, 17 Apr 2007 20:15:53 +0000 (20:15 +0000)
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

libjava/classpath/ChangeLog
libjava/classpath/gnu/java/awt/peer/gtk/ComponentGraphics.java
libjava/classpath/include/gnu_java_awt_peer_gtk_ComponentGraphics.h
libjava/classpath/native/jni/gtk-peer/gnu_java_awt_peer_gtk_ComponentGraphics.c

index c1c14a6a40b9d70a80a371ae50faee46712de37c..244b98da8835d0a6156d3e95f3065a7bfa823660 100644 (file)
@@ -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>
 
        https://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=236614
index 763ad7dfddd318eddb62635568e0500ee7ede7ca..098052ae961c7c0cc6ea12fb11c8e195ee16b1c8 100644 (file)
@@ -138,21 +138,6 @@ public class ComponentGraphics extends CairoGraphics2D
       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
    */
index fbd5f6a93b2eb83e91f5c00b5220633c9d2a71f7..2df12469b42ea8811e498baa66bf5306ed06a176 100644 (file)
@@ -11,7 +11,6 @@ extern "C"
 #endif
 
 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 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);
index 25163cd9f3e1d6e6374a5a2e337d9a260d069574..ed9cf3d6ddc3e16b9d6e3a4c1b0f4cf6a2a83fcd 100644 (file)
@@ -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();