Fix non-variadic CIF initialization for Apple/ARM64

Turns out `aarch64_nfixedargs` wasn't initialized in the non-variadic
case, resulting in undefined behavior when allocating arguments.
This commit is contained in:
Ole André Vadla Ravnås
2014-07-26 00:11:06 +02:00
committed by Ole André Vadla Ravnås
parent 1cee07be47
commit 0f4e09d27d

View File

@@ -779,6 +779,8 @@ ffi_prep_cif_machdep (ffi_cif *cif)
} }
} }
cif->aarch64_nfixedargs = 0;
return FFI_OK; return FFI_OK;
} }
@@ -789,9 +791,13 @@ ffi_status ffi_prep_cif_machdep_var(ffi_cif *cif,
unsigned int nfixedargs, unsigned int nfixedargs,
unsigned int ntotalargs) unsigned int ntotalargs)
{ {
ffi_status status;
status = ffi_prep_cif_machdep (cif);
cif->aarch64_nfixedargs = nfixedargs; cif->aarch64_nfixedargs = nfixedargs;
return ffi_prep_cif_machdep(cif); return status;
} }
#endif #endif