Skip to content
  • Jeff King's avatar
    provide a helper to free commit buffer · 0fb370da
    Jeff King authored and Junio C Hamano's avatar Junio C Hamano committed
    
    
    This converts two lines into one at each caller. But more
    importantly, it abstracts the concept of freeing the buffer,
    which will make it easier to change later.
    
    Note that we also need to provide a "detach" mechanism for a
    tricky case in index-pack. We are passed a buffer for the
    object generated by processing the incoming pack. If we are
    not using --strict, we just calculate the sha1 on that
    buffer and return, leaving the caller to free it.  But if we
    are using --strict, we actually attach that buffer to an
    object, pass the object to the fsck functions, and then
    detach the buffer from the object again (so that the caller
    can free it as usual).  In this case, we don't want to free
    the buffer ourselves, but just make sure it is no longer
    associated with the commit.
    
    Note that we are making the assumption here that the
    attach/detach process does not impact the buffer at all
    (e.g., it is never reallocated or modified). That holds true
    now, and we have no plans to change that. However, as we
    abstract the commit_buffer code, this dependency becomes
    less obvious. So when we detach, let's also make sure that
    we get back the same buffer that we gave to the
    commit_buffer code.
    
    Signed-off-by: default avatarJeff King <peff@peff.net>
    Signed-off-by: default avatarJunio C Hamano <gitster@pobox.com>
    0fb370da