Skip to content

Commit d39cc71

Browse files
peffgitster
authored andcommitted
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 <[email protected]> Signed-off-by: Junio C Hamano <[email protected]>
1 parent 2e7b89e commit d39cc71

File tree

1 file changed

+3
-4
lines changed

1 file changed

+3
-4
lines changed

builtin/sparse-checkout.c

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -343,9 +343,8 @@ static int write_patterns_and_update(struct pattern_list *pl)
343343
result = update_working_directory(pl);
344344
if (result) {
345345
rollback_lock_file(&lk);
346-
clear_pattern_list(pl);
347346
update_working_directory(NULL);
348-
return result;
347+
goto out;
349348
}
350349

351350
fp = xfdopen(fd, "w");
@@ -358,9 +357,9 @@ static int write_patterns_and_update(struct pattern_list *pl)
358357
fflush(fp);
359358
commit_lock_file(&lk);
360359

360+
out:
361361
clear_pattern_list(pl);
362-
363-
return 0;
362+
return result;
364363
}
365364

366365
enum sparse_checkout_mode {

0 commit comments

Comments
 (0)