defineclass.cc (handleClassBegin): Use _Jv_RegisterInitiatingLoader.

* defineclass.cc (handleClassBegin): Use
	_Jv_RegisterInitiatingLoader.
	* java/lang/Class.h (_Jv_UnregisterInitiatingLoader): Declare.
	* java/lang/natVMClassLoader.cc (resolveClass): Don't register
	class.  Use _Jv_UnregisterInitiatingLoader.
	* java/lang/natClassLoader.cc (_Jv_UnregisterInitiatingLoader):
	New function.

From-SVN: r94717
This commit is contained in:
Tom Tromey 2005-02-07 21:29:04 +00:00 committed by Tom Tromey
parent b0ad2de203
commit f55db9c2fc
5 changed files with 30 additions and 15 deletions

View file

@ -57,13 +57,8 @@ java::lang::VMClassLoader::defineClass (java::lang::ClassLoader *loader,
jclass klass = VMCompiler::compileClass(loader, name, data,
offset, length, pd);
if (klass != NULL)
{
JvSynchronize sync (&java::lang::Class::class$);
_Jv_RegisterClass (klass);
}
#ifdef INTERPRETER
else
if (klass == NULL)
{
klass = new java::lang::Class ();
@ -96,7 +91,7 @@ java::lang::VMClassLoader::defineClass (java::lang::ClassLoader *loader,
klass->state = JV_STATE_ERROR;
klass->notifyAll ();
_Jv_UnregisterClass (klass);
_Jv_UnregisterInitiatingLoader (klass, klass->loader);
// If EX is not a ClassNotFoundException, that's ok, because we
// account for the possibility in defineClass().