natClass.cc (initializeClass): Check tables when (state == JV_STATE_IN_PROGRESS).

* java/lang/natClass.cc (initializeClass): Check tables when
(state == JV_STATE_IN_PROGRESS).
(_Jv_GetInterfaces): Use _Jv_WaitForState to link interface.
* java/lang/natClassLoader.cc (_Jv_WaitForState): Handle
interpreted classes.
(linkClass0): Use _Jv_WaitForState.

From-SVN: r62161
This commit is contained in:
Jeff Sturm 2003-01-30 23:20:45 +00:00 committed by Jeff Sturm
parent ccf9f10cc3
commit ae724017fd
3 changed files with 31 additions and 10 deletions

View file

@ -117,6 +117,10 @@ _Jv_WaitForState (jclass klass, int state)
{
// Must call _Jv_PrepareCompiledClass while holding the class
// mutex.
#ifdef INTERPRETER
if (_Jv_IsInterpretedClass (klass))
_Jv_PrepareClass (klass);
#endif
_Jv_PrepareCompiledClass (klass);
_Jv_MonitorExit (klass);
return;
@ -141,15 +145,7 @@ _Jv_WaitForState (jclass klass, int state)
void
java::lang::ClassLoader::linkClass0 (java::lang::Class *klass)
{
if (klass->state >= JV_STATE_LINKED)
return;
#ifdef INTERPRETER
if (_Jv_IsInterpretedClass (klass))
_Jv_PrepareClass (klass);
#endif
_Jv_PrepareCompiledClass (klass);
_Jv_WaitForState (klass, JV_STATE_LINKED);
}
void