On Tue, 2005-11-08 at 16:42 +0100, Christian Thalinger wrote: > We are currently developing a JNI source code analyzer, which scans for > missing NewGlobalRef calls (this is for popl06). And it seems that it > has found a bug in GNU classpath's gtk peers.
Ok, here are the 2 missing jclass bugs we've found: Index: native/jni/java-lang/java_lang_VMDouble.c =================================================================== RCS file: /cvsroot/classpath/classpath/native/jni/java-lang/java_lang_VMDouble.c,v retrieving revision 1.11 diff -u -3 -p -r1.11 java_lang_VMDouble.c --- native/jni/java-lang/java_lang_VMDouble.c 24 Aug 2005 14:18:52 -0000 1.11 +++ native/jni/java-lang/java_lang_VMDouble.c 10 Nov 2005 19:34:14 -0000 @@ -71,6 +71,11 @@ Java_java_lang_VMDouble_initIDs (JNIEnv { DBG ("unable to get class java.lang.Double\n") return; } + clsDouble = (*env)->NewGlobalRef(env, clsDouble); + if (clsDouble == NULL) + { + DBG ("unable to register class java.lang.Double as global ref\n") return; + } isNaNID = (*env)->GetStaticMethodID (env, clsDouble, "isNaN", "(D)Z"); if (isNaNID == NULL) { Index: native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkToolkit.c =================================================================== RCS file: /cvsroot/classpath/classpath/native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkToolkit.c,v retrieving revision 1.24 diff -u -3 -p -r1.24 gnu_java_awt_peer_gtk_GtkToolkit.c --- native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkToolkit.c 24 Sep 2005 21:01:07 -0000 1.24 +++ native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkToolkit.c 10 Nov 2005 19:34:14 -0000 @@ -135,6 +135,8 @@ Java_gnu_java_awt_peer_gtk_GtkToolkit_gt gtkgenericpeer = (*env)->FindClass(env, "gnu/java/awt/peer/gtk/GtkGenericPeer"); + gtkgenericpeer = (*env)->NewGlobalRef(env, gtkgenericpeer); + printCurrentThreadID = (*env)->GetStaticMethodID (env, gtkgenericpeer, "printCurrentThread", "()V"); There are a lot more warnings and potential bugs concerning jmethod, jfieldID, etc. Should i post a list of the warnings i think they may be a bug (some of them are marked as "strange")? TWISTI _______________________________________________ Classpath mailing list Classpath@gnu.org http://lists.gnu.org/mailman/listinfo/classpath