diff options
author | Tom Tromey <tromey@redhat.com> | 2002-11-06 14:14:51 +0000 |
---|---|---|
committer | Tom Tromey <tromey@gcc.gnu.org> | 2002-11-06 14:14:51 +0000 |
commit | 7694d69a1bf318d6eab3aa8278821c60a1ea8e85 (patch) | |
tree | 5e40553d62987d7a26ae4504332fd68a3ebc8043 /libjava/jni.cc | |
parent | ca01c43fca1e23a4cf0d0f1682dfeb040dbaeff3 (diff) | |
download | gcc-7694d69a1bf318d6eab3aa8278821c60a1ea8e85.zip gcc-7694d69a1bf318d6eab3aa8278821c60a1ea8e85.tar.gz gcc-7694d69a1bf318d6eab3aa8278821c60a1ea8e85.tar.bz2 |
jni.cc (array_from_valist): Assume that jlong won't be promoted.
* jni.cc (array_from_valist): Assume that jlong won't be
promoted.
From-SVN: r58859
Diffstat (limited to 'libjava/jni.cc')
-rw-r--r-- | libjava/jni.cc | 10 |
1 files changed, 8 insertions, 2 deletions
diff --git a/libjava/jni.cc b/libjava/jni.cc index 2985d47..9865ce4 100644 --- a/libjava/jni.cc +++ b/libjava/jni.cc @@ -693,7 +693,13 @@ array_from_valist (jvalue *values, JArray<jclass> *arg_types, va_list vargs) { // Here we assume that sizeof(int) >= sizeof(jint), because we // use `int' when decoding the varargs. Likewise for - // long/jlong, float, and double. + // float, and double. Also we assume that sizeof(jlong) >= + // sizeof(int), i.e. that jlong values are not further + // promoted. + JvAssert (sizeof (int) >= sizeof (jint)); + JvAssert (sizeof (jlong) >= sizeof (int)); + JvAssert (sizeof (double) >= sizeof (jfloat)); + JvAssert (sizeof (double) >= sizeof (jdouble)); if (arg_elts[i] == JvPrimClass (byte)) values[i].b = (jbyte) va_arg (vargs, int); else if (arg_elts[i] == JvPrimClass (short)) @@ -701,7 +707,7 @@ array_from_valist (jvalue *values, JArray<jclass> *arg_types, va_list vargs) else if (arg_elts[i] == JvPrimClass (int)) values[i].i = (jint) va_arg (vargs, int); else if (arg_elts[i] == JvPrimClass (long)) - values[i].j = (jlong) va_arg (vargs, long); + values[i].j = (jlong) va_arg (vargs, jlong); else if (arg_elts[i] == JvPrimClass (float)) values[i].f = (jfloat) va_arg (vargs, double); else if (arg_elts[i] == JvPrimClass (double)) |