]> git.ipfire.org Git - thirdparty/git.git/commitdiff
fetch-pack: don't needlessly copy fsck_options
authorÆvar Arnfjörð Bjarmason <avarab@gmail.com>
Sun, 28 Mar 2021 13:15:49 +0000 (15:15 +0200)
committerJunio C Hamano <gitster@pobox.com>
Mon, 29 Mar 2021 02:03:10 +0000 (19:03 -0700)
Change the behavior of the .gitmodules validation added in
5476e1efde (fetch-pack: print and use dangling .gitmodules,
2021-02-22) so we're using one "fsck_options".

I found that code confusing to read. One might think that not setting
up the error_func earlier means that we're relying on the "error_func"
not being set in some code in between the two hunks being modified
here.

But we're not, all we're doing in the rest of "cmd_index_pack()" is
further setup by calling fsck_set_msg_types(), and assigning to
do_fsck_object.

So there was no reason in 5476e1efde to make a shallow copy of the
fsck_options struct before setting error_func. Let's just do this
setup at the top of the function, along with the "walk" assignment.

Signed-off-by: Ævar Arnfjörð Bjarmason <avarab@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
builtin/index-pack.c

index 2b2266a4b7debf9064efdbd56b732031b04456c2..5ad80b85b473c1f785bc7b409d99c556f64a6757 100644 (file)
@@ -1761,6 +1761,7 @@ int cmd_index_pack(int argc, const char **argv, const char *prefix)
 
        read_replace_refs = 0;
        fsck_options.walk = mark_link;
+       fsck_options.error_func = print_dangling_gitmodules;
 
        reset_pack_idx_option(&opts);
        git_config(git_index_pack_config, &opts);
@@ -1951,13 +1952,8 @@ int cmd_index_pack(int argc, const char **argv, const char *prefix)
        else
                close(input_fd);
 
-       if (do_fsck_object) {
-               struct fsck_options fo = fsck_options;
-
-               fo.error_func = print_dangling_gitmodules;
-               if (fsck_finish(&fo))
-                       die(_("fsck error in pack objects"));
-       }
+       if (do_fsck_object && fsck_finish(&fsck_options))
+               die(_("fsck error in pack objects"));
 
        free(objects);
        strbuf_release(&index_name_buf);