diff options
author | Tom Tromey <tromey@cygnus.com> | 2000-02-16 00:07:34 +0000 |
---|---|---|
committer | Tom Tromey <tromey@gcc.gnu.org> | 2000-02-16 00:07:34 +0000 |
commit | d348bda453c2ec3ebe67ff3208822e040960ccb6 (patch) | |
tree | fd8526541777f72d0a207a77149193b5171b7e75 /libjava/include/java-interp.h | |
parent | f295bdb5eb37ae58628d68dd74d7067591ee29ee (diff) | |
download | gcc-d348bda453c2ec3ebe67ff3208822e040960ccb6.zip gcc-d348bda453c2ec3ebe67ff3208822e040960ccb6.tar.gz gcc-d348bda453c2ec3ebe67ff3208822e040960ccb6.tar.bz2 |
resolve.cc (ncode): Set args_raw_size.
* resolve.cc (ncode): Set args_raw_size. Compute jni_cif and
jni_arg_types.
(init_cif): Added `rtype_p' argument.
* include/java-interp.h (class _Jv_MethodBase): Added
args_raw_size.
(class _Jv_InterpMethod): Removed args_raw_size.
(class _Jv_JNIMethod): Added jni_cif and jni_arg_types fields.
* jni.cc (call): Pass JNIEnv and (for static methods only) the
class pointer as well as the ordinary arguments.
From-SVN: r31995
Diffstat (limited to 'libjava/include/java-interp.h')
-rw-r--r-- | libjava/include/java-interp.h | 10 |
1 files changed, 9 insertions, 1 deletions
diff --git a/libjava/include/java-interp.h b/libjava/include/java-interp.h index 8111d40..a0ca347 100644 --- a/libjava/include/java-interp.h +++ b/libjava/include/java-interp.h @@ -76,6 +76,9 @@ protected: // The method description. _Jv_Method *self; + + // Size of raw arguments. + _Jv_ushort args_raw_size; }; class _Jv_InterpMethod : public _Jv_MethodBase @@ -85,7 +88,6 @@ class _Jv_InterpMethod : public _Jv_MethodBase int code_length; _Jv_ushort exc_count; - _Jv_ushort args_raw_size; unsigned char* bytecode () { @@ -175,6 +177,12 @@ class _Jv_JNIMethod : public _Jv_MethodBase // function. void *function; + // This is the CIF used by the JNI function. + ffi_cif jni_cif; + + // These are the argument types used by the JNI function. + ffi_type **jni_arg_types; + // This function is used when making a JNI call from the interpreter. static void call (ffi_cif *, void *, ffi_raw *, void *); |