sparse-checkout: consolidate cleanup when writing patterns

In write_patterns_and_update(), we always need to free the pattern list
before exiting the function.  Rather than handling it manually when we
return early, we can jump to an "out" label where cleanup happens. This
let us drop one line, but also establishes a pattern we can use for
other cleanup.

Signed-off-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
Jeff King
2024-09-05 23:47:08 -04:00
committed by Junio C Hamano
parent 2e7b89e038
commit d39cc7185e

View File

@ -343,9 +343,8 @@ static int write_patterns_and_update(struct pattern_list *pl)
result = update_working_directory(pl);
if (result) {
rollback_lock_file(&lk);
clear_pattern_list(pl);
update_working_directory(NULL);
return result;
goto out;
}
fp = xfdopen(fd, "w");
@ -358,9 +357,9 @@ static int write_patterns_and_update(struct pattern_list *pl)
fflush(fp);
commit_lock_file(&lk);
out:
clear_pattern_list(pl);
return 0;
return result;
}
enum sparse_checkout_mode {