-87005025fcd0d7e7908b3aae7062b52cb80eb0f3
+9a79c333e896ea49f6a708d459148074d29a2af6
The first line of this file holds the git revision number of the last
merge done from the gofrontend repository.
fields := make([]*__ffi_type, 0, c+1)
checkPad := false
+ lastzero := false
for i, v := range typ.fields {
// Skip zero-sized fields; they confuse libffi,
// and there is no value to pass in any case.
// next field.
if v.typ.size == 0 {
checkPad = true
+ lastzero = true
continue
}
+ lastzero = false
if checkPad {
off := uintptr(0)
fields = append(fields, typeToFFI(v.typ))
}
+ if lastzero {
+ // The compiler adds one byte padding to non-empty struct ending
+ // with a zero-sized field (types.cc:get_backend_struct_fields).
+ // Add this padding to the FFI type.
+ fields = append(fields, ffi_type_uint8())
+ }
+
fields = append(fields, nil)
return &__ffi_type{