diff mbox series

[v2,03/12] bloom: parse commit before computing filters

Message ID 0e08cec78d325452f9901501b2e0b53b3145a022.1589198180.git.gitgitgadget@gmail.com (mailing list archive)
State New, archived
Headers show
Series Integrating line-log and changed-path Bloom filters | expand

Commit Message

Linus Arver via GitGitGadget May 11, 2020, 11:56 a.m. UTC
From: Derrick Stolee <dstolee@microsoft.com>

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>
---
 bloom.c | 3 +++
 1 file changed, 3 insertions(+)
diff mbox series

Patch

diff --git a/bloom.c b/bloom.c
index 2e3e0f5037b..96792782719 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