On Sun, May 4, 2014 at 1:07 PM, Michael Haggerty <mhagger@xxxxxxxxxxxx> wrote: > On 05/03/2014 10:12 PM, brian m. carlson wrote: >> Many places throughout the code use "unsigned char [20]" to store object IDs >> (SHA-1 values). This leads to lots of hardcoded numbers throughout the >> codebase. It also leads to confusion about the purposes of a buffer. >> >> Introduce a structure for object IDs. This allows us to obtain the benefits >> of compile-time checking for misuse. The structure is expected to remain >> the same size and have the same alignment requirements on all known >> platforms, compared to the array of unsigned char. > > Please clarify whether you plan to rely on all platforms having "the > same size and alignment constraints" for correctness, or whether that > observation of the status quo is only meant to reassure us that this > change won't cause memory to be wasted on padding. It's not just about wasted padding. Some structs, like ondisk_cache_entry, reflect on-disk format. Padding means breakage. But I don't think this will be a big issue because we can detect if padding happens, abort to force the user to complain, and deal with it on case-by-case basis. -- Duy -- To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html