aboutsummaryrefslogtreecommitdiff
path: root/libjava/java
diff options
context:
space:
mode:
authorTom Tromey <tromey@redhat.com>2001-10-02 13:44:32 +0000
committerTom Tromey <tromey@gcc.gnu.org>2001-10-02 13:44:32 +0000
commit62a040818aae81ad8558ebbe3c8973a16e7c250f (patch)
tree671927c18dd4a69605e4bc5e6e956d6b870a48d6 /libjava/java
parent6cbd1b6f7ebf08244942dd1aaae5ae73ef79da48 (diff)
downloadgcc-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.cc5
-rw-r--r--libjava/java/lang/reflect/natMethod.cc4
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;