Skip to content
  • brian m. carlson's avatar
    Convert the verify_pack callback to struct object_id · 9fd75046
    brian m. carlson authored and Junio C Hamano's avatar Junio C Hamano committed
    
    
    Make the verify_pack_callback take a pointer to struct object_id.
    Change the pack checksum to use GIT_MAX_RAWSZ, even though it is not
    strictly an object ID.  Doing so ensures resilience against future hash
    size changes, and allows us to remove hard-coded assumptions about how
    big the buffer needs to be.
    
    Also, use a union to convert the pointer from nth_packed_object_sha1 to
    to a pointer to struct object_id.  This behavior is compatible with GCC
    and clang and explicitly sanctioned by C11.  The alternatives are to
    just perform a cast, which would run afoul of strict aliasing rules, but
    should just work, and changing the pointer into an instance of struct
    object_id and copying the value.  The latter operation could seriously
    bloat memory usage on fsck, which already uses a lot of memory on some
    repositories.
    
    Signed-off-by: default avatarbrian m. carlson <sandals@crustytoothpaste.net>
    Signed-off-by: default avatarJunio C Hamano <gitster@pobox.com>
    9fd75046