From 48831167e2e28fb95355c426dcd700f74b32a1c9 Mon Sep 17 00:00:00 2001 From: tromey Date: Mon, 3 Feb 2003 21:07:22 +0000 Subject: 2003-02-03 Ranjit Mathew * resolve.cc (_Jv_JNIMethod::ncode): Use stdcall calling convention on Win32 to invoke native JNI methods. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@62345 138bc75d-0d04-0410-961f-82ee72b054a4 --- libjava/ChangeLog | 5 +++++ libjava/resolve.cc | 9 ++++++++- 2 files changed, 13 insertions(+), 1 deletion(-) (limited to 'libjava') diff --git a/libjava/ChangeLog b/libjava/ChangeLog index 72c1793479d..11ba2edd366 100644 --- a/libjava/ChangeLog +++ b/libjava/ChangeLog @@ -1,3 +1,8 @@ +2003-02-03 Ranjit Mathew + + * resolve.cc (_Jv_JNIMethod::ncode): Use stdcall calling + convention on Win32 to invoke native JNI methods. + 2003-02-03 Andrew Haley * configure.host (x86_64): Enable interpreter. diff --git a/libjava/resolve.cc b/libjava/resolve.cc index e69341e385f..aa17ea9c5f0 100644 --- a/libjava/resolve.cc +++ b/libjava/resolve.cc @@ -1003,7 +1003,14 @@ _Jv_JNIMethod::ncode () memcpy (&jni_arg_types[offset], &closure->arg_types[0], arg_count * sizeof (ffi_type *)); - if (ffi_prep_cif (&jni_cif, FFI_DEFAULT_ABI, + // NOTE: This must agree with the JNICALL definition in jni.h +#ifdef WIN32 +#define FFI_JNI_ABI FFI_STDCALL +#else +#define FFI_JNI_ABI FFI_DEFAULT_ABI +#endif + + if (ffi_prep_cif (&jni_cif, FFI_JNI_ABI, extra_args + arg_count, rtype, jni_arg_types) != FFI_OK) throw_internal_error ("ffi_prep_cif failed for JNI function"); -- cgit v1.2.3