Re: [PATCH] archive-zip: don't use sizeof(struct ...)
On Thu, Nov 23, 2006 at 11:02:37PM +0100, Ren? Scharfe wrote:
Show 18 quoted lines
> We can't rely on sizeof(struct zip_*) returning the sum of
> all struct members. At least on ARM padding is added at the
> end, as Gerrit Pape reported. This fixes the problem but
> still lets the compiler do the summing by introducing
> explicit padding at the end of the structs and then taking
> its offset as the combined size of the preceding members.
>
> As Junio correctly notes, the _end[] marker array's size
> must be greater than zero for compatibility with compilers
> other than gcc. The space wasted by the markers can safely
> be neglected because we only have one instance of each
> struct, i.e. in sum 3 wasted bytes on i386, and 0 on ARM. :)
>
> We still rely on the compiler to not add padding between the
> struct members, but that's reasonable given that all of them
> are unsigned char arrays.
>
> Signed-off-by: Rene Scharfe <rene.scharfe@lsrfire.ath.cx>