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:
parent
b0ad2de203
commit
f55db9c2fc
5 changed files with 30 additions and 15 deletions
|
@ -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().
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue