diff mbox series

[1/8] combine-diff: zero memory used for callback filepairs

Message ID 20250326-toon-blame-tree-v1-1-4173133f3786@iotcl.com (mailing list archive)
State New
Headers show
Series Introduce git-blame-tree(1) command | expand

Commit Message

Toon Claes March 26, 2025, 8:18 p.m. UTC
From: Jeff King <peff@peff.net>

In commit 25e5e2bf85 (combine-diff: support format_callback,
2011-08-19), the combined-diff code learned how to make a multi-sourced
diff_filepair to pass to a diff callback. When we create each filepair,
we do not bother to fill in many of the fields, because they would make
no sense (e.g., there can be no rename score or broken_pair flag because
we do not go through the diffcore filters). However, we did not even
bother to zero them, leading to random values. Let's make sure
everything is blank with xcalloc, just as the regular diff code does.

We would potentially want to set the "status" flag to
something non-zero, but it is not clear to what. Possibly a
new DIFF_STATUS_COMBINED would make sense, as this is not
strictly a modification, nor does it fit any other category.

Since it is not yet clear what callers would want, this
patch simply leaves it as "0", the same empty flag that is
seen when diffcore_std is not used at all.

Signed-off-by: Jeff King <peff@peff.net>
---
 combine-diff.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
diff mbox series

Patch

diff --git a/combine-diff.c b/combine-diff.c
index 9527f3160d..1deb8c7374 100644
--- a/combine-diff.c
+++ b/combine-diff.c
@@ -1315,7 +1315,7 @@  static struct diff_filepair *combined_pair(struct combine_diff_path *p,
 	struct diff_filepair *pair;
 	struct diff_filespec *pool;
 
-	pair = xmalloc(sizeof(*pair));
+	CALLOC_ARRAY(pair, 1);
 	CALLOC_ARRAY(pool, st_add(num_parent, 1));
 	pair->one = pool + 1;
 	pair->two = pool;