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>
Jeff King committed
Sep 5, 2024 at 23:47 UTC
d39cc7185e0c1529917c0407036c9b09a94dd5ee
1 file changed
+3
-4
builtin/sparse-checkout.c
+3
-4
@@ -343,9 +343,8 @@ static int write_patterns_and_update(struct pattern_list *pl)
343
result = update_working_directory(pl);
344
if (result) {
345
rollback_lock_file(&lk);
346
- clear_pattern_list(pl);
346
update_working_directory(NULL);
348
- return result;
347
+ goto out;
348
}
349
350
fp = xfdopen(fd, "w");
@@ -358,9 +357,9 @@ static int write_patterns_and_update(struct pattern_list *pl)
357
fflush(fp);
358
commit_lock_file(&lk);
359
360
+out:
361
clear_pattern_list(pl);
362
-
363
- return 0;
362
+ return result;
363
}
364
365
enum sparse_checkout_mode {