diff options
author | tromey <tromey@138bc75d-0d04-0410-961f-82ee72b054a4> | 2001-10-02 13:44:32 +0000 |
---|---|---|
committer | tromey <tromey@138bc75d-0d04-0410-961f-82ee72b054a4> | 2001-10-02 13:44:32 +0000 |
commit | 7e2f6bf5a1687ecd7ec1d70903d63e0c1307a789 (patch) | |
tree | 671927c18dd4a69605e4bc5e6e956d6b870a48d6 /libjava/java | |
parent | aae9fec7102c688b20e367ce9681cc1af8fa6ce2 (diff) | |
download | ppe42-gcc-7e2f6bf5a1687ecd7ec1d70903d63e0c1307a789.tar.gz ppe42-gcc-7e2f6bf5a1687ecd7ec1d70903d63e0c1307a789.zip |
* 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.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@45951 138bc75d-0d04-0410-961f-82ee72b054a4
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 bc48041f455..78751229eab 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 96cc13209ab..26c270e3e03 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; |