>>>>> "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)
{