]> git.ipfire.org Git - thirdparty/git.git/commit
unpack_loose_rest(): rewrite return handling for clarity
authorJeff King <peff@peff.net>
Tue, 25 Feb 2025 06:34:21 +0000 (01:34 -0500)
committerJunio C Hamano <gitster@pobox.com>
Tue, 25 Feb 2025 18:25:49 +0000 (10:25 -0800)
commit1cb2f293f5a594fd5dee8400213bd2f395fbd2bf
treecf9d3d05476fca38fe9d324991d9fca1c959dc7d
parent547f719d9b022e87eb8cf3cb7a7632822b996e29
unpack_loose_rest(): rewrite return handling for clarity

We have a pattern like:

  if (error1)
     ...handle error 1...
  else if (error2)
     ...handle error 2...
  else
     ...return buf...
  ...free buf and return NULL...

This is a little subtle because it is the return in the success block
that lets us skip the common error handling. Rewrite this instead to
free the buffer in each error path, marking it as NULL, and then all
code paths can use the common return.

This should make the logic a bit easier to follow. It does mean
duplicating the buf cleanup for errors, but it's a single line.

Signed-off-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
object-file.c