Fix memory leak in ipa-pure-const
[gcc.git] / libjava / interpret.cc
index ab28836293e47836962f24f821f300032b826fbb..78686fd55b7a605034ef067d6eed5de291fbff09 100644 (file)
@@ -1303,7 +1303,12 @@ _Jv_init_cif (_Jv_Utf8Const* signature,
   if (ptr != (unsigned char*)signature->chars() + signature->len())
     throw_internal_error ("did not find end of signature");
 
-  if (ffi_prep_cif (cif, FFI_DEFAULT_ABI,
+  ffi_abi cabi = FFI_DEFAULT_ABI;
+#if defined (X86_WIN32) && !defined (__CYGWIN__)
+  if (!staticp)
+    cabi = FFI_THISCALL;
+#endif
+  if (ffi_prep_cif (cif, cabi,
                    arg_count, rtype, arg_types) != FFI_OK)
     throw_internal_error ("ffi_prep_cif failed");