classpath-patches
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[cp-patches] remove JamVM workarounds from GTK peers


From: Thomas Fitzsimmons
Subject: [cp-patches] remove JamVM workarounds from GTK peers
Date: Wed, 17 Aug 2005 23:16:59 -0400

Hi,

I'm removing these workarounds for a JamVM deadlock problem that was
fixed in jamvm-1.3.2.

Tom

2005-08-17  Thomas Fitzsimmons  <address@hidden>

        * native/jni/gtk-peer/gnu_java_awt_peer_gtk_GdkFontPeer.c,
        native/jni/gtk-peer/gnu_java_awt_peer_gtk_GdkRobotPeer.c,
        native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkComponentPeer.c,
        native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkImage.c,
        native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkListPeer.c: Remove
        JamVM deadlock workarounds.

Index: native/jni/gtk-peer/gnu_java_awt_peer_gtk_GdkFontPeer.c
===================================================================
RCS file: 
/cvsroot/classpath/classpath/native/jni/gtk-peer/gnu_java_awt_peer_gtk_GdkFontPeer.c,v
retrieving revision 1.8
diff -u -r1.8 gnu_java_awt_peer_gtk_GdkFontPeer.c
--- native/jni/gtk-peer/gnu_java_awt_peer_gtk_GdkFontPeer.c     14 Jul 2005 
22:07:02 -0000      1.8
+++ native/jni/gtk-peer/gnu_java_awt_peer_gtk_GdkFontPeer.c     18 Aug 2005 
02:49:46 -0000
@@ -150,12 +150,8 @@
 
   if (i == NULL)       
     {
-      gdk_threads_leave ();
-
       java_extents = (*env)->NewDoubleArray (env, 0);
       java_codes = (*env)->NewIntArray (env, 0);
-
-      gdk_threads_enter ();
     }
   else
     { 
@@ -177,12 +173,8 @@
          int x = 0;
          double scale = ((double) PANGO_SCALE);
 
-          gdk_threads_leave ();
-
          java_extents = (*env)->NewDoubleArray (env, glyphs->num_glyphs * 
NUM_GLYPH_METRICS);
          java_codes = (*env)->NewIntArray (env, glyphs->num_glyphs);
-
-          gdk_threads_enter ();
 
          native_extents = (*env)->GetDoubleArrayElements (env, java_extents, 
NULL);
          native_codes = (*env)->GetIntArrayElements (env, java_codes, NULL);
Index: native/jni/gtk-peer/gnu_java_awt_peer_gtk_GdkRobotPeer.c
===================================================================
RCS file: 
/cvsroot/classpath/classpath/native/jni/gtk-peer/gnu_java_awt_peer_gtk_GdkRobotPeer.c,v
retrieving revision 1.5
diff -u -r1.5 gnu_java_awt_peer_gtk_GdkRobotPeer.c
--- native/jni/gtk-peer/gnu_java_awt_peer_gtk_GdkRobotPeer.c    14 Jul 2005 
22:07:02 -0000      1.5
+++ native/jni/gtk-peer/gnu_java_awt_peer_gtk_GdkRobotPeer.c    18 Aug 2005 
02:49:46 -0000
@@ -311,11 +311,7 @@
   n_pixels = height * stride_pixels;
   gdk_pixels = gdk_pixbuf_get_pixels (pixbuf);
 
-  gdk_threads_leave ();
-
   jpixels = (*env)->NewIntArray (env, n_pixels);
-
-  gdk_threads_enter ();
 
   java_pixels = (*env)->GetIntArrayElements (env, jpixels, NULL);
 
Index: native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkComponentPeer.c
===================================================================
RCS file: 
/cvsroot/classpath/classpath/native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkComponentPeer.c,v
retrieving revision 1.50
diff -u -r1.50 gnu_java_awt_peer_gtk_GtkComponentPeer.c
--- native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkComponentPeer.c        18 Aug 
2005 01:22:00 -0000      1.50
+++ native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkComponentPeer.c        18 Aug 
2005 02:49:46 -0000
@@ -602,12 +602,8 @@
 
   bg = GTK_WIDGET (ptr)->style->bg[GTK_STATE_NORMAL];
 
-  gdk_threads_leave ();
-
   array = (*env)->NewIntArray (env, 3);
 
-  gdk_threads_enter ();
-
   rgb = (*env)->GetIntArrayElements (env, array, NULL);
   /* convert color data from 16 bit values down to 8 bit values */
   rgb[0] = bg.red   >> 8;
@@ -635,11 +631,7 @@
 
   fg = GTK_WIDGET (ptr)->style->fg[GTK_STATE_NORMAL];
 
-  gdk_threads_leave ();
-
   array = (*env)->NewIntArray (env, 3);
-
-  gdk_threads_enter ();
 
   rgb = (*env)->GetIntArrayElements (env, array, NULL);
   /* convert color data from 16 bit values down to 8 bit values */
Index: native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkImage.c
===================================================================
RCS file: 
/cvsroot/classpath/classpath/native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkImage.c,v
retrieving revision 1.12
diff -u -r1.12 gnu_java_awt_peer_gtk_GtkImage.c
--- native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkImage.c        16 Aug 2005 
18:16:27 -0000      1.12
+++ native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkImage.c        18 Aug 2005 
02:49:46 -0000
@@ -130,14 +130,7 @@
   height = gdk_pixbuf_get_height (pixbuf);
   rowstride = gdk_pixbuf_get_rowstride (pixbuf);
 
-  /* Must release the GDK lock before allocating memory through the
-     JVM, since some JVMs use the same lock for allocations and
-     finalization.  Deadlock can occur on those JVMs. */
-  gdk_threads_leave ();
-
   result_array = (*env)->NewIntArray (env, (width * height));
-
-  gdk_threads_enter ();
 
   dst = result_array_iter = 
     (*env)->GetIntArrayElements (env, result_array, NULL);
Index: native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkListPeer.c
===================================================================
RCS file: 
/cvsroot/classpath/classpath/native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkListPeer.c,v
retrieving revision 1.21
diff -u -r1.21 gnu_java_awt_peer_gtk_GtkListPeer.c
--- native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkListPeer.c     18 Aug 2005 
01:22:00 -0000      1.21
+++ native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkListPeer.c     18 Aug 2005 
02:49:46 -0000
@@ -423,11 +423,7 @@
     {
       current_row = rows = gtk_tree_selection_get_selected_rows (selection, 
NULL);
 
-      gdk_threads_leave ();
-
       result_array = (*env)->NewIntArray (env, count);
-
-      gdk_threads_enter ();
 
       result_array_iter = (*env)->GetIntArrayElements (env, result_array, 
NULL);
 

reply via email to

[Prev in Thread] Current Thread [Next in Thread]