diff options
author | Tom Tromey <tromey@redhat.com> | 2001-10-02 13:44:32 +0000 |
---|---|---|
committer | Tom Tromey <tromey@gcc.gnu.org> | 2001-10-02 13:44:32 +0000 |
commit | 62a040818aae81ad8558ebbe3c8973a16e7c250f (patch) | |
tree | 671927c18dd4a69605e4bc5e6e956d6b870a48d6 /libjava/java | |
parent | 6cbd1b6f7ebf08244942dd1aaae5ae73ef79da48 (diff) | |
download | gcc-62a040818aae81ad8558ebbe3c8973a16e7c250f.zip gcc-62a040818aae81ad8558ebbe3c8973a16e7c250f.tar.gz gcc-62a040818aae81ad8558ebbe3c8973a16e7c250f.tar.bz2 |
prims.cc (_Jv_NewMultiArrayUnchecked): New method.
* prims.cc (_Jv_NewMultiArrayUnchecked): New method.
(_Jv_NewMultiArray): Use it. Check each array dimension.
(_Jv_NewMultiArray): Likewise.
* java/lang/reflect/natMethod.cc (can_widen): Nothing promotes to
`char'.
* java/lang/reflect/natArray.cc (newInstance): Throw
IllegalArgumentException if there are no dimensions.
From-SVN: r45951
Diffstat (limited to 'libjava/java')
-rw-r--r-- | libjava/java/lang/reflect/natArray.cc | 5 | ||||
-rw-r--r-- | libjava/java/lang/reflect/natMethod.cc | 4 |
2 files changed, 5 insertions, 4 deletions
diff --git a/libjava/java/lang/reflect/natArray.cc b/libjava/java/lang/reflect/natArray.cc index bc48041..7875122 100644 --- a/libjava/java/lang/reflect/natArray.cc +++ b/libjava/java/lang/reflect/natArray.cc @@ -43,11 +43,12 @@ java::lang::reflect::Array::newInstance (jclass componentType, jint length) } jobject -java::lang::reflect::Array::newInstance (jclass componentType, jintArray dimensions) +java::lang::reflect::Array::newInstance (jclass componentType, + jintArray dimensions) { jint ndims = dimensions->length; if (ndims == 0) - return componentType->newInstance (); + throw new java::lang::IllegalArgumentException (); jint* dims = elements (dimensions); if (ndims == 1) return newInstance (componentType, dims[0]); diff --git a/libjava/java/lang/reflect/natMethod.cc b/libjava/java/lang/reflect/natMethod.cc index 96cc132..26c270e 100644 --- a/libjava/java/lang/reflect/natMethod.cc +++ b/libjava/java/lang/reflect/natMethod.cc @@ -100,8 +100,8 @@ can_widen (jclass from, jclass to) // Boolean arguments may not be widened. if (fromx == BOOLEAN && tox != BOOLEAN) return false; - // Special-case short->char conversions. - if (fromx == SHORT && tox == CHAR) + // Nothing promotes to char. + if (tox == CHAR && fromx != CHAR) return false; return fromx <= tox; |