summaryrefslogtreecommitdiffstats
path: root/libjava/java/lang/natClassLoader.cc
diff options
context:
space:
mode:
authorjsturm <jsturm@138bc75d-0d04-0410-961f-82ee72b054a4>2003-01-30 23:20:45 +0000
committerjsturm <jsturm@138bc75d-0d04-0410-961f-82ee72b054a4>2003-01-30 23:20:45 +0000
commit2c8f9104ed7a40de2edc83e4a79fe29f0d9884b4 (patch)
tree68e1ce35ce8786bd229d9f2d6e91343074b4bcb2 /libjava/java/lang/natClassLoader.cc
parentf08ad1514ac6a53b68f17fc07fbdb46580cd09f5 (diff)
downloadppe42-gcc-2c8f9104ed7a40de2edc83e4a79fe29f0d9884b4.tar.gz
ppe42-gcc-2c8f9104ed7a40de2edc83e4a79fe29f0d9884b4.zip
* 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. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@62161 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'libjava/java/lang/natClassLoader.cc')
-rw-r--r--libjava/java/lang/natClassLoader.cc14
1 files changed, 5 insertions, 9 deletions
diff --git a/libjava/java/lang/natClassLoader.cc b/libjava/java/lang/natClassLoader.cc
index 176f16a7343..7ca537c365f 100644
--- a/libjava/java/lang/natClassLoader.cc
+++ b/libjava/java/lang/natClassLoader.cc
@@ -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
OpenPOWER on IntegriCloud