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

@ -110,6 +110,16 @@ _Jv_RegisterInitiatingLoader (jclass klass, java::lang::ClassLoader *loader)
loader->loadedClasses->put(klass->name->toString(), klass);
}
// If we found an error while defining an interpreted class, we must
// go back and unregister it.
void
_Jv_UnregisterInitiatingLoader (jclass klass, java::lang::ClassLoader *loader)
{
if (! loader)
loader = java::lang::ClassLoader::getSystemClassLoader();
loader->loadedClasses->remove(klass->name->toString());
}
// This function is called many times during startup, before main() is
// run. At that point in time we know for certain we are running
// single-threaded, so we don't need to lock when adding classes to the