summaryrefslogtreecommitdiffstats
path: root/libjava/java/lang/reflect/natField.cc
diff options
context:
space:
mode:
authortromey <tromey@138bc75d-0d04-0410-961f-82ee72b054a4>2000-09-13 18:15:42 +0000
committertromey <tromey@138bc75d-0d04-0410-961f-82ee72b054a4>2000-09-13 18:15:42 +0000
commitfa3f0d94aa07e26543ae03d87dfd64d06969ab8c (patch)
tree3483c9e2a4671c3d6cee57888089bde987ea8f17 /libjava/java/lang/reflect/natField.cc
parent0f5ffcb6e8aeea4e2eff939657e619cd2ea658ac (diff)
downloadppe42-gcc-fa3f0d94aa07e26543ae03d87dfd64d06969ab8c.tar.gz
ppe42-gcc-fa3f0d94aa07e26543ae03d87dfd64d06969ab8c.zip
* java/lang/reflect/natArray.cc (BooleanClass): New define.
(get): Ensure Boolean class is initialized. * java/lang/reflect/natField.cc (BooleanClass): New define. (get): Ensure Boolean class is initialized. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@36391 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'libjava/java/lang/reflect/natField.cc')
-rw-r--r--libjava/java/lang/reflect/natField.cc14
1 files changed, 10 insertions, 4 deletions
diff --git a/libjava/java/lang/reflect/natField.cc b/libjava/java/lang/reflect/natField.cc
index 761324385f9..3cd296c7021 100644
--- a/libjava/java/lang/reflect/natField.cc
+++ b/libjava/java/lang/reflect/natField.cc
@@ -26,6 +26,9 @@ details. */
#include <java/lang/Boolean.h>
#include <java/lang/Character.h>
+#define BooleanClass _CL_Q34java4lang7Boolean
+extern java::lang::Class BooleanClass;
+
jint
java::lang::reflect::Field::getModifiers ()
{
@@ -251,10 +254,13 @@ java::lang::reflect::Field::get (jclass caller, jobject obj)
if (fld->type == JvPrimClass (char))
return new java::lang::Character (* (jchar*) addr);
if (fld->type == JvPrimClass (boolean))
- if (* (jboolean*) addr)
- return java::lang::Boolean::TRUE;
- else
- return java::lang::Boolean::FALSE;
+ {
+ _Jv_InitClass (&BooleanClass);
+ if (* (jboolean*) addr)
+ return java::lang::Boolean::TRUE;
+ else
+ return java::lang::Boolean::FALSE;
+ }
JvThrow (new java::lang::IllegalArgumentException());
}
OpenPOWER on IntegriCloud