summaryrefslogtreecommitdiff
path: root/libjava/include
diff options
context:
space:
mode:
authortromey <tromey@138bc75d-0d04-0410-961f-82ee72b054a4>2000-02-16 00:07:34 +0000
committertromey <tromey@138bc75d-0d04-0410-961f-82ee72b054a4>2000-02-16 00:07:34 +0000
commita82244f012d6c61bc27634963b5e7c25c72a16ed (patch)
treefd8526541777f72d0a207a77149193b5171b7e75 /libjava/include
parent82eb11029e6a84cc342178e50b15827facb5f23f (diff)
downloadgcc-a82244f012d6c61bc27634963b5e7c25c72a16ed.tar.gz
* 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. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@31995 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'libjava/include')
-rw-r--r--libjava/include/java-interp.h10
1 files changed, 9 insertions, 1 deletions
diff --git a/libjava/include/java-interp.h b/libjava/include/java-interp.h
index 8111d40f2a7..a0ca3470de8 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 *);