diff options
author | Tom Tromey <tromey@cygnus.com> | 2000-09-13 18:15:42 +0000 |
---|---|---|
committer | Tom Tromey <tromey@gcc.gnu.org> | 2000-09-13 18:15:42 +0000 |
commit | 96fa18eb49018ae88dae0f4c45216ef5cdf8de2e (patch) | |
tree | 3483c9e2a4671c3d6cee57888089bde987ea8f17 /libjava | |
parent | 1ca04dc8b6480d22d9f20620b14f16e5870c600d (diff) | |
download | gcc-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/ChangeLog | 7 | ||||
-rw-r--r-- | libjava/java/lang/reflect/natArray.cc | 14 | ||||
-rw-r--r-- | libjava/java/lang/reflect/natField.cc | 14 |
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()); } |