aboutsummaryrefslogtreecommitdiff
path: root/libjava/testsuite
diff options
context:
space:
mode:
authorHans Boehm <Hans_Boehm@hp.com>2003-02-28 17:26:29 +0000
committerHans Boehm <hboehm@gcc.gnu.org>2003-02-28 17:26:29 +0000
commita6fdf2d3bf5c3802e1e3982eed1bee911815b88f (patch)
tree123264cc97cae659f3f16d4926edb3a263796a95 /libjava/testsuite
parentb8c53e96add72de918819b4d13308715faeaa7af (diff)
downloadgcc-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.c6
-rw-r--r--libjava/testsuite/libjava.jni/calls.java6
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");