Git fork

combine-diff: zero memory used for callback filepairs

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>
Signed-off-by: Toon Claes <toon@iotcl.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

authored by

Jeff King and committed by
Junio C Hamano
9bb4abe6 16bd9f20

+1 -1
+1 -1
combine-diff.c
··· 1315 1315 struct diff_filepair *pair; 1316 1316 struct diff_filespec *pool; 1317 1317 1318 - pair = xmalloc(sizeof(*pair)); 1318 + CALLOC_ARRAY(pair, 1); 1319 1319 CALLOC_ARRAY(pool, st_add(num_parent, 1)); 1320 1320 pair->one = pool + 1; 1321 1321 pair->two = pool;