summaryrefslogtreecommitdiff
path: root/bloom.c
diff options
context:
space:
mode:
authorDerrick Stolee <dstolee@microsoft.com>2020-05-11 11:56:10 (GMT)
committerJunio C Hamano <gitster@pobox.com>2020-05-11 16:33:56 (GMT)
commit891c17c95497712126700cdf5cd887bdb0ff3d55 (patch)
tree4e981805e8c80cb2ccde7c361694333be045c96e /bloom.c
parent54c337be9c8ad47b49709a43b4c63f407ff168e6 (diff)
downloadgit-891c17c95497712126700cdf5cd887bdb0ff3d55.zip
git-891c17c95497712126700cdf5cd887bdb0ff3d55.tar.gz
git-891c17c95497712126700cdf5cd887bdb0ff3d55.tar.bz2
bloom: parse commit before computing filters
When computing changed-path Bloom filters for a commit, we need to know if the commit has a parent or not. If the commit is not parsed, then its parent pointer will be NULL. As far as I can tell, the only opportunity to reach this code without parsing the commit is inside "test-tool bloom get_filter_for_commit" but it is best to be safe. Signed-off-by: Derrick Stolee <dstolee@microsoft.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
Diffstat (limited to 'bloom.c')
-rw-r--r--bloom.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/bloom.c b/bloom.c
index 2e3e0f5..9679278 100644
--- a/bloom.c
+++ b/bloom.c
@@ -193,6 +193,9 @@ struct bloom_filter *get_bloom_filter(struct repository *r,
diffopt.max_changes = max_changes;
diff_setup_done(&diffopt);
+ /* ensure commit is parsed so we have parent information */
+ repo_parse_commit(r, c);
+
if (c->parents)
diff_tree_oid(&c->parents->item->object.oid, &c->object.oid, "", &diffopt);
else