]> git.ipfire.org Git - thirdparty/git.git/commitdiff
revisions API: have release_revisions() release "prune_data"
authorÆvar Arnfjörð Bjarmason <avarab@gmail.com>
Wed, 13 Apr 2022 20:01:50 +0000 (22:01 +0200)
committerJunio C Hamano <gitster@pobox.com>
Thu, 14 Apr 2022 06:56:09 +0000 (23:56 -0700)
Extend the the release_revisions() function so that it frees the
"prune_data" in the "struct rev_info". This means that any code that
calls "release_revisions()" already can get rid of adjacent calls to
clear_pathspec().

Signed-off-by: Ævar Arnfjörð Bjarmason <avarab@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
add-interactive.c
builtin/add.c
builtin/stash.c
diff-lib.c
revision.c
wt-status.c

index 54cdfc8201738fdac1fc18c048559a9bcb3fe5a9..6047e8f6489fa3e6695e3925cd513963d05a5615 100644 (file)
@@ -568,8 +568,6 @@ static int get_modified_files(struct repository *r,
                        run_diff_files(&rev, 0);
                }
 
-               if (ps)
-                       clear_pathspec(&rev.prune_data);
                release_revisions(&rev);
        }
        hashmap_clear_and_free(&s.file_map, struct pathname_entry, ent);
index 115a26ea6331f8182f083a390dd61a704d009672..fc729e14c17ce3c8a4f1836e0d5f75da64cfacc8 100644 (file)
@@ -142,7 +142,6 @@ int add_files_to_cache(const char *prefix,
        rev.diffopt.flags.override_submodule_config = 1;
        rev.max_count = 0; /* do not compare unmerged paths with stage #2 */
        run_diff_files(&rev, DIFF_RACY_IS_MODIFIED);
-       clear_pathspec(&rev.prune_data);
        release_revisions(&rev);
        return !!data.add_errors;
 }
index 7c9c5751f57bbecec616cf0f2bc0d06de0e37077..e6b4c12ebba5a2ee935dc200f8d489a613a99862 100644 (file)
@@ -1064,7 +1064,6 @@ static int check_changes_tracked_files(const struct pathspec *ps)
        }
 
 done:
-       clear_pathspec(&rev.prune_data);
        release_revisions(&rev);
        return ret;
 }
@@ -1276,7 +1275,6 @@ static int stash_working_tree(struct stash_info *info, const struct pathspec *ps
 
 done:
        discard_index(&istate);
-       clear_pathspec(&rev.prune_data);
        release_revisions(&rev);
        strbuf_release(&diff_output);
        remove_path(stash_index_path.buf);
index 0f16281253fe6b522757a693d9acc2be1cf5454d..298265e5b54a057dffc410188587936ffff76076 100644 (file)
@@ -641,7 +641,6 @@ int do_diff_cache(const struct object_id *tree_oid, struct diff_options *opt)
 
        if (diff_cache(&revs, tree_oid, NULL, 1))
                exit(128);
-       clear_pathspec(&revs.prune_data);
        release_revisions(&revs);
        return 0;
 }
index 1db58c3e4dba5ef525fec6541ec0939dd6b777f6..6f444eaaeba8a15f15a29e1b121c7fff0fc13882 100644 (file)
@@ -2949,6 +2949,7 @@ void release_revisions(struct rev_info *revs)
        object_array_clear(&revs->pending);
        release_revisions_cmdline(&revs->cmdline);
        list_objects_filter_release(&revs->filter);
+       clear_pathspec(&revs->prune_data);
        release_revisions_mailmap(revs->mailmap);
        free_grep_patterns(&revs->grep_filter);
 }
index a14fad1e03aeca76bd1d78491a6067f88723ec0c..61e0c1022f574ed7641690647dd130fd6c798c5c 100644 (file)
@@ -616,7 +616,6 @@ static void wt_status_collect_changes_worktree(struct wt_status *s)
        rev.diffopt.rename_score = s->rename_score >= 0 ? s->rename_score : rev.diffopt.rename_score;
        copy_pathspec(&rev.prune_data, &s->pathspec);
        run_diff_files(&rev, 0);
-       clear_pathspec(&rev.prune_data);
        release_revisions(&rev);
 }
 
@@ -664,7 +663,6 @@ static void wt_status_collect_changes_index(struct wt_status *s)
        copy_pathspec(&rev.prune_data, &s->pathspec);
        run_diff_index(&rev, 1);
        release_revisions(&rev);
-       clear_pathspec(&rev.prune_data);
 }
 
 static int add_file_to_list(const struct object_id *oid,