summaryrefslogtreecommitdiff
path: root/c/libffi_msvc
diff options
context:
space:
mode:
authorArmin Rigo <arigo@tunes.org>2013-08-01 12:06:49 +0200
committerArmin Rigo <arigo@tunes.org>2013-08-01 12:06:49 +0200
commit07e755d7e0e5c97e6d3bd38da31615ca84288e0b (patch)
tree44997aee810872a7c8889c0ac419cd3bcb78dafe /c/libffi_msvc
parentfdeb05a7bc268de2b758ac1e80586bdfc6325bca (diff)
downloadcffi-07e755d7e0e5c97e6d3bd38da31615ca84288e0b.tar.gz
Fix
Diffstat (limited to 'c/libffi_msvc')
-rw-r--r--c/libffi_msvc/ffi.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/c/libffi_msvc/ffi.c b/c/libffi_msvc/ffi.c
index e7dc320..fcd06d6 100644
--- a/c/libffi_msvc/ffi.c
+++ b/c/libffi_msvc/ffi.c
@@ -340,6 +340,9 @@ ffi_closure_SYSV (ffi_closure *closure, int *argp)
result types except for floats; we have to 'mov xmm0, rax' in the
caller to correct this.
*/
+ if ( cif->flags == FFI_TYPE_STRUCT ) {
+ resp = *(void **)resp;
+ }
return *(void **)resp;
#endif
}