>>>>> "Ian" == Ian Rogers <[EMAIL PROTECTED]> writes:
Ian> There's a bug in the Classpath CVS head that's crashing the Jikes RVM Ian> (thanks to Mark for helping me to find it). It's in jcl.c where we Ian> delete a global ref which is actually only a local ref. The following Ian> fixes it. Thanks. I'm checking in this variant, which removes the now-unused 'tmp' variables. Tom Index: ChangeLog from Ian Rogers <[EMAIL PROTECTED]> * native/jni/classpath/jcl.c (JNI_OnLoad): Don't call DeleteGlobalRef on a local ref. Index: native/jni/classpath/jcl.c =================================================================== RCS file: /cvsroot/classpath/classpath/native/jni/classpath/jcl.c,v retrieving revision 1.25 diff -u -r1.25 jcl.c --- native/jni/classpath/jcl.c 17 Sep 2006 19:13:01 -0000 1.25 +++ native/jni/classpath/jcl.c 27 Sep 2006 16:09:05 -0000 @@ -1,5 +1,5 @@ /* jcl.c - Copyright (C) 1998, 2005 Free Software Foundation, Inc. + Copyright (C) 1998, 2005, 2006 Free Software Foundation, Inc. This file is part of GNU Classpath. @@ -72,11 +72,7 @@ #if SIZEOF_VOID_P == 8 rawDataClass = (*env)->FindClass (env, "gnu/classpath/Pointer64"); if (rawDataClass != NULL) - { - jclass tmp = rawDataClass; - rawDataClass = (*env)->NewGlobalRef (env, rawDataClass); - (*env)->DeleteGlobalRef (env, tmp); - } + rawDataClass = (*env)->NewGlobalRef (env, rawDataClass); if (rawDataClass != NULL) { @@ -87,11 +83,7 @@ #if SIZEOF_VOID_P == 4 rawDataClass = (*env)->FindClass (env, "gnu/classpath/Pointer32"); if (rawDataClass != NULL) - { - jclass tmp = rawDataClass; - rawDataClass = (*env)->NewGlobalRef (env, rawDataClass); - (*env)->DeleteGlobalRef (env, tmp); - } + rawDataClass = (*env)->NewGlobalRef (env, rawDataClass); if (rawDataClass != NULL) {