diff options
author | Ranjit Mathew <rmathew@hotmail.com> | 2003-02-03 21:07:22 +0000 |
---|---|---|
committer | Tom Tromey <tromey@gcc.gnu.org> | 2003-02-03 21:07:22 +0000 |
commit | 9762ec767ee8e33089b9d4763cc39ad774b36e43 (patch) | |
tree | b2f1f01798e273a0b7aac27bb966493109f23ab3 /libjava/resolve.cc | |
parent | 985d0d50d5656be93b6e5d1dae2e3f7afeaa0bc5 (diff) | |
download | gcc-9762ec767ee8e33089b9d4763cc39ad774b36e43.zip gcc-9762ec767ee8e33089b9d4763cc39ad774b36e43.tar.gz gcc-9762ec767ee8e33089b9d4763cc39ad774b36e43.tar.bz2 |
resolve.cc (_Jv_JNIMethod::ncode): Use stdcall calling convention on Win32 to invoke native JNI methods.
2003-02-03 Ranjit Mathew <rmathew@hotmail.com>
* resolve.cc (_Jv_JNIMethod::ncode): Use stdcall calling
convention on Win32 to invoke native JNI methods.
From-SVN: r62345
Diffstat (limited to 'libjava/resolve.cc')
-rw-r--r-- | libjava/resolve.cc | 9 |
1 files changed, 8 insertions, 1 deletions
diff --git a/libjava/resolve.cc b/libjava/resolve.cc index e69341e..aa17ea9 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"); |