Commit 5e5c1371 by Tom Tromey Committed by Tom Tromey

natClassLoader.cc (_Jv_PrepareCompiledClass): Only initialize String fields for…

natClassLoader.cc (_Jv_PrepareCompiledClass): Only initialize String fields for interpreted classes.

	* java/lang/natClassLoader.cc (_Jv_PrepareCompiledClass): Only
	initialize String fields for interpreted classes.  Fixes bug
	reported by Hans Boehm.

From-SVN: r35150
parent 373d3b18
2000-07-20 Tom Tromey <tromey@cygnus.com>
* java/lang/natClassLoader.cc (_Jv_PrepareCompiledClass): Only
initialize String fields for interpreted classes. Fixes bug
reported by Hans Boehm.
* java/io/File.java (getParentFile): New method, from Classpath
via Oskar Liljeblad.
......
......@@ -165,9 +165,7 @@ java::lang::ClassLoader::linkClass0 (java::lang::Class *klass)
#ifdef INTERPRETER
if (_Jv_IsInterpretedClass (klass))
{
_Jv_PrepareClass (klass);
}
#endif
_Jv_PrepareCompiledClass (klass);
......@@ -230,7 +228,7 @@ java::lang::ClassLoader::findLoadedClass (jstring name)
lives in resolve.cc which is entirely conditionally compiled.
*/
void
_Jv_PrepareCompiledClass(jclass klass)
_Jv_PrepareCompiledClass (jclass klass)
{
if (klass->state >= JV_STATE_LINKED)
return;
......@@ -270,6 +268,13 @@ _Jv_PrepareCompiledClass(jclass klass)
}
}
#ifdef INTERPRETER
// FIXME: although the comment up top says that this function is
// only called for compiled classes, it is actually called for every
// class.
if (! _Jv_IsInterpretedClass (klass))
{
#endif /* INTERPRETER */
jfieldID f = JvGetFirstStaticField (klass);
for (int n = JvNumStaticFields (klass); n > 0; --n)
{
......@@ -287,6 +292,9 @@ _Jv_PrepareCompiledClass(jclass klass)
}
f = f->getNextField ();
}
#ifdef INTERPRETER
}
#endif /* INTERPRETER */
klass->notifyAll ();
}
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment