aboutsummaryrefslogtreecommitdiff
path: root/libjava
diff options
context:
space:
mode:
authorTom Tromey <tromey@cygnus.com>2000-09-13 18:15:42 +0000
committerTom Tromey <tromey@gcc.gnu.org>2000-09-13 18:15:42 +0000
commit96fa18eb49018ae88dae0f4c45216ef5cdf8de2e (patch)
tree3483c9e2a4671c3d6cee57888089bde987ea8f17 /libjava
parent1ca04dc8b6480d22d9f20620b14f16e5870c600d (diff)
downloadgcc-96fa18eb49018ae88dae0f4c45216ef5cdf8de2e.zip
gcc-96fa18eb49018ae88dae0f4c45216ef5cdf8de2e.tar.gz
gcc-96fa18eb49018ae88dae0f4c45216ef5cdf8de2e.tar.bz2
natArray.cc (BooleanClass): New define.
* 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. From-SVN: r36391
Diffstat (limited to 'libjava')
-rw-r--r--libjava/ChangeLog7
-rw-r--r--libjava/java/lang/reflect/natArray.cc14
-rw-r--r--libjava/java/lang/reflect/natField.cc14
3 files changed, 27 insertions, 8 deletions
diff --git a/libjava/ChangeLog b/libjava/ChangeLog
index fb5bdd8..85cddc2 100644
--- a/libjava/ChangeLog
+++ b/libjava/ChangeLog
@@ -1,3 +1,10 @@
+2000-09-13 Tom Tromey <tromey@cygnus.com>
+
+ * 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.
+
2000-09-13 Bryce McKinlay <bryce@albatross.co.nz>
* java/lang/String.java (CASE_INSENSITIVE_ORDER): New static field.
diff --git a/libjava/java/lang/reflect/natArray.cc b/libjava/java/lang/reflect/natArray.cc
index fd95368..4bce9ce 100644
--- a/libjava/java/lang/reflect/natArray.cc
+++ b/libjava/java/lang/reflect/natArray.cc
@@ -25,6 +25,9 @@ details. */
#include <java/lang/Boolean.h>
#include <java/lang/Character.h>
+#define BooleanClass _CL_Q34java4lang7Boolean
+extern java::lang::Class BooleanClass;
+
jobject
java::lang::reflect::Array::newInstance (jclass componentType, jint length)
{
@@ -211,10 +214,13 @@ java::lang::reflect::Array::get (jobject array, jint index)
if (elementType == JvPrimClass (char))
return new java::lang::Character (elements ((jcharArray) array) [index]);
if (elementType == JvPrimClass (boolean))
- if (elements ((jbooleanArray) array) [index])
- return java::lang::Boolean::TRUE;
- else
- return java::lang::Boolean::FALSE;
+ {
+ _Jv_InitClass (&BooleanClass);
+ if (elements ((jbooleanArray) array) [index])
+ return java::lang::Boolean::TRUE;
+ else
+ return java::lang::Boolean::FALSE;
+ }
JvThrow (new java::lang::IllegalArgumentException());
}
diff --git a/libjava/java/lang/reflect/natField.cc b/libjava/java/lang/reflect/natField.cc
index 7613243..3cd296c 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());
}