• René Scharfe's avatar
    pack-objects: use free()+xcalloc() instead of xrealloc()+memset() · fb799474
    René Scharfe authored
    Whenever the hash table becomes too small then its size is increased,
    the original part (and the added space) is zerod out using memset(),
    and the table is rebuilt from scratch.
    Simplify this proceess by returning the old memory using free() and
    allocating the new buffer using xcalloc(), which already clears the
    buffer for us.  That way we avoid copying the old hash table contents
    needlessly inside xrealloc().
    While at it, use the first array member with sizeof instead of a
    specific type.  The old code used uint32_t and int, while index is
    actually an array of int32_t.  Their sizes are the same basically
    everywhere, so it's not actually a problem, but the new code is
    cleaner and doesn't have to be touched should the type be changed.
    Signed-off-by: default avatarRene Scharfe <l.s.r@web.de>
    Signed-off-by: default avatarJunio C Hamano <gitster@pobox.com>
pack-objects.c 2.19 KB