summaryrefslogtreecommitdiffstats
path: root/libjava/java
diff options
context:
space:
mode:
authortromey <tromey@138bc75d-0d04-0410-961f-82ee72b054a4>2001-10-02 13:44:32 +0000
committertromey <tromey@138bc75d-0d04-0410-961f-82ee72b054a4>2001-10-02 13:44:32 +0000
commit7e2f6bf5a1687ecd7ec1d70903d63e0c1307a789 (patch)
tree671927c18dd4a69605e4bc5e6e956d6b870a48d6 /libjava/java
parentaae9fec7102c688b20e367ce9681cc1af8fa6ce2 (diff)
downloadppe42-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.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 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;
OpenPOWER on IntegriCloud