From 21c445fd82fe7b3da332fcd89084807de3d41645 Mon Sep 17 00:00:00 2001 From: Kaz Kylheku Date: Mon, 8 May 2017 06:30:24 -0700 Subject: ffi: don't zero out anonymous struct padding. * ffi.c (ffi_struct_put, ffi_struct_out): Just skip the space corresponding to the anonymous padding member; don't memset with zeros. Doing this is inconsistent because we are not zero-filling the ordinary alignment padding between members and at the end of the struct. If the uninitialized garbage is a problem in some uses, we can provide a variation of the struct type which is zero initialized. --- ffi.c | 4 ---- 1 file changed, 4 deletions(-) diff --git a/ffi.c b/ffi.c index 6c831246..131801f3 100644 --- a/ffi.c +++ b/ffi.c @@ -929,8 +929,6 @@ static void ffi_struct_put(struct txr_ffi_type *tft, val strct, mem_t *dst, if (slsym) { val slval = slot(strct, slsym); mtft->put(mtft, slval, dst + offs, self); - } else { - memset(dst + offs, 0, mtft->size); } offs += mtft->size; } @@ -957,8 +955,6 @@ static void ffi_struct_out(struct txr_ffi_type *tft, int copy, val strct, val slval = slot(strct, slsym); mtft->put(mtft, slval, dst + offs, self); } - } else if (copy) { - memset(dst + offs, 0, mtft->size); } offs += mtft->size; } -- cgit v1.2.3