diff options
author | Hans Boehm <Hans_Boehm@hp.com> | 2003-02-28 17:26:29 +0000 |
---|---|---|
committer | Hans Boehm <hboehm@gcc.gnu.org> | 2003-02-28 17:26:29 +0000 |
commit | a6fdf2d3bf5c3802e1e3982eed1bee911815b88f (patch) | |
tree | 123264cc97cae659f3f16d4926edb3a263796a95 /libjava/testsuite | |
parent | b8c53e96add72de918819b4d13308715faeaa7af (diff) | |
download | gcc-a6fdf2d3bf5c3802e1e3982eed1bee911815b88f.zip gcc-a6fdf2d3bf5c3802e1e3982eed1bee911815b88f.tar.gz gcc-a6fdf2d3bf5c3802e1e3982eed1bee911815b88f.tar.bz2 |
natMethod.cc (_Jv_CallAnyMethodA): Allocate a full jvalue for each argument.
* java/lang/reflect/natMethod.cc (_Jv_CallAnyMethodA): Allocate a full
jvalue for each argument. Simplify.
* testsuite/libjava.jni/calls.c (docall),
testsuite/libjava.jni/calls.java (longpb_f): check for argument
misalignment.
From-SVN: r63563
Diffstat (limited to 'libjava/testsuite')
-rw-r--r-- | libjava/testsuite/libjava.jni/calls.c | 6 | ||||
-rw-r--r-- | libjava/testsuite/libjava.jni/calls.java | 6 |
2 files changed, 12 insertions, 0 deletions
diff --git a/libjava/testsuite/libjava.jni/calls.c b/libjava/testsuite/libjava.jni/calls.c index dd54005..709e55d 100644 --- a/libjava/testsuite/libjava.jni/calls.c +++ b/libjava/testsuite/libjava.jni/calls.c @@ -47,6 +47,12 @@ Java_calls_docall (JNIEnv *env, jobject _this) if (l != 2033) ++fails; + method = (*env)->GetStaticMethodID (env, klass, "longpb_f", "(BJBJBJ)J"); + l = (*env)->CallStaticLongMethod (env, klass, method, (jbyte) 13, (jlong) 3, + (jbyte) 13, (jlong) 3, (jbyte) 13, (jlong) 4); + if (l != 3033) + ++fails; + method = (*env)->GetMethodID (env, klass, "void_f", "()V"); (*env)->CallVoidMethod (env, _this, method); diff --git a/libjava/testsuite/libjava.jni/calls.java b/libjava/testsuite/libjava.jni/calls.java index b98017c..19c33be 100644 --- a/libjava/testsuite/libjava.jni/calls.java +++ b/libjava/testsuite/libjava.jni/calls.java @@ -37,6 +37,12 @@ public class calls extends base return q + 2023; } + public static long longpb_f (byte b1, long q1, byte b2, long q2, + byte b3, long q3) + { + return q1 + q2 + q3 + 3023; + } + public void void_f () { System.out.println ("void"); |