summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDerrick Stolee <dstolee@microsoft.com>2021-02-01 12:47:23 +0000
committerJunio C Hamano <gitster@pobox.com>2021-02-01 11:50:33 -0800
commit0fac15652322e607ef3cb9f59e46ca2b168e933a (patch)
tree0b9b05bd4e99895d63adf61e872cf307998baf5a
parent5a3b130cad0d5c770f766e3af6d32b41766374c0 (diff)
downloadgit-0fac15652322e607ef3cb9f59e46ca2b168e933a.tar.gz
commit-reach: reduce requirements for remove_redundant()
Remove a comment at the beggining of remove_redundant() that mentions a reordering of the input array to have the initial segment be the independent commits and the final segment be the redundant commits. While this behavior is followed in remove_redundant(), no callers rely on that behavior. Remove the final loop that copies this final segment and update the comment to match the new behavior. Signed-off-by: Derrick Stolee <dstolee@microsoft.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
-rw-r--r--commit-reach.c10
1 files changed, 4 insertions, 6 deletions
diff --git a/commit-reach.c b/commit-reach.c
index e38771ca5a..9af51fe7e0 100644
--- a/commit-reach.c
+++ b/commit-reach.c
@@ -160,9 +160,10 @@ static int remove_redundant(struct repository *r, struct commit **array, int cnt
{
/*
* Some commit in the array may be an ancestor of
- * another commit. Move such commit to the end of
- * the array, and return the number of commits that
- * are independent from each other.
+ * another commit. Move the independent commits to the
+ * beginning of 'array' and return their number. Callers
+ * should not rely upon the contents of 'array' after
+ * that number.
*/
struct commit **work;
unsigned char *redundant;
@@ -209,9 +210,6 @@ static int remove_redundant(struct repository *r, struct commit **array, int cnt
for (i = filled = 0; i < cnt; i++)
if (!redundant[i])
array[filled++] = work[i];
- for (j = filled, i = 0; i < cnt; i++)
- if (redundant[i])
- array[j++] = work[i];
free(work);
free(redundant);
free(filled_index);