summaryrefslogtreecommitdiffstats
path: root/libjava/java
diff options
context:
space:
mode:
authortromey <tromey@138bc75d-0d04-0410-961f-82ee72b054a4>2006-03-01 16:01:34 +0000
committertromey <tromey@138bc75d-0d04-0410-961f-82ee72b054a4>2006-03-01 16:01:34 +0000
commitb8853c9668e8ab7468910e7946c6a19d3bcfc2cc (patch)
tree42ca6f30418eaa33910696f8b21d4cb225d9a8bc /libjava/java
parente77b861868bd1268e5d52f238c70292427c53f28 (diff)
downloadppe42-gcc-b8853c9668e8ab7468910e7946c6a19d3bcfc2cc.tar.gz
ppe42-gcc-b8853c9668e8ab7468910e7946c6a19d3bcfc2cc.zip
PR java/24321:
* testsuite/libjava.lang/pr24321.java: New file. * testsuite/libjava.lang/pr24321.out: New file. * java/lang/natClass.cc (isInstance): Don't initialize class. (isAssignableFrom): Likewise. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@111603 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'libjava/java')
-rw-r--r--libjava/java/lang/natClass.cc6
1 files changed, 3 insertions, 3 deletions
diff --git a/libjava/java/lang/natClass.cc b/libjava/java/lang/natClass.cc
index 8972cb2c499..38a9aff4a0b 100644
--- a/libjava/java/lang/natClass.cc
+++ b/libjava/java/lang/natClass.cc
@@ -621,8 +621,9 @@ jboolean
java::lang::Class::isAssignableFrom (jclass klass)
{
// Arguments may not have been initialized, given ".class" syntax.
- _Jv_InitClass (this);
- _Jv_InitClass (klass);
+ // This ensures we can at least look at their superclasses.
+ _Jv_Linker::wait_for_state (this, JV_STATE_LOADING);
+ _Jv_Linker::wait_for_state (klass, JV_STATE_LOADING);
return _Jv_IsAssignableFrom (klass, this);
}
@@ -631,7 +632,6 @@ java::lang::Class::isInstance (jobject obj)
{
if (! obj)
return false;
- _Jv_InitClass (this);
return _Jv_IsAssignableFrom (JV_CLASS (obj), this);
}
OpenPOWER on IntegriCloud