git/list[1] front-page[2] threads[3] people[4] search[5] about
 

[PATCH 07/14] remote: use commit_stack for src_commits

From
René Scharfe <l.s.r@web.de>
Date
Dec 24, 2025, 17:03 UTC
Message-ID
<20251224170327.68049-8-l.s.r@web.de>
In-Reply-To
<20251224170327.68049-1-l.s.r@web.de>
Use commit_stack instead of open-coding it.
Signed-off-by: René Scharfe <l.s.r@web.de>
---
 remote.c | 15 +++++++--------
 1 file changed, 7 insertions(+), 8 deletions(-)
diff --git a/remote.c b/remote.c
index ffea887c70..b756ff6f15 100644
--- a/remote.c
+++ b/remote.c
@@ -1443,9 +1443,7 @@ static void add_missing_tags(struct ref *src, struct ref **dst, struct ref ***ds
 	if (sent_tips.nr) {
 		const int reachable_flag = 1;
 		struct commit_list *found_commits;
-		struct commit **src_commits;
-		size_t nr_src_commits = 0, alloc_src_commits = 16;
-		ALLOC_ARRAY(src_commits, alloc_src_commits);
+		struct commit_stack src_commits = COMMIT_STACK_INIT;
 
 		for_each_string_list_item(item, &src_tag) {
 			struct ref *ref = item->util;
@@ -1460,13 +1458,13 @@ static void add_missing_tags(struct ref *src, struct ref **dst, struct ref ***ds
 				/* not pushing a commit, which is not an error */
 				continue;
 
-			ALLOC_GROW(src_commits, nr_src_commits + 1, alloc_src_commits);
-			src_commits[nr_src_commits++] = commit;
+			commit_stack_push(&src_commits, commit);
 		}
 
 		found_commits = get_reachable_subset(sent_tips.items,
 						     sent_tips.nr,
-						     src_commits, nr_src_commits,
+						     src_commits.items,
+						     src_commits.nr,
 						     reachable_flag);
 
 		for_each_string_list_item(item, &src_tag) {
@@ -1496,8 +1494,9 @@ static void add_missing_tags(struct ref *src, struct ref **dst, struct ref ***ds
 			dst_ref->peer_ref = copy_ref(ref);
 		}
 
-		clear_commit_marks_many(nr_src_commits, src_commits, reachable_flag);
-		free(src_commits);
+		clear_commit_marks_many(src_commits.nr, src_commits.items,
+					reachable_flag);
+		commit_stack_clear(&src_commits);
 		free_commit_list(found_commits);
 	}
 
-- 
2.52.0
Previous: René ScharfeNext: René Scharfe
Message 7 of 15 in “export and use commit_stack”
  1. 00/14 export and use commit_stackRené Scharfe, Dec 24, 2025
  2. 01/14 revision: export commit_stackRené Scharfe, Dec 24, 2025
  3. 05/14 remote: use commit_stack for local_commitsRené Scharfe, Dec 24, 2025
  4. 08/14 test-reach: use commit_stackRené Scharfe, Dec 24, 2025
  5. 04/14 name-rev: use commit_stackRené Scharfe, Dec 24, 2025
  6. 02/14 log: use commit_stackRené Scharfe, Dec 24, 2025
  7. 07/14 remote: use commit_stack for src_commitsRené Scharfe, Dec 24, 2025
  8. 03/14 midx: use commit_stackRené Scharfe, Dec 24, 2025
  9. 06/14 remote: use commit_stack for sent_tipsRené Scharfe, Dec 24, 2025
  10. 11/14 shallow: use commit_stackRené Scharfe, Dec 24, 2025
  11. 10/14 pack-bitmap-write: use commit_stackRené Scharfe, Dec 24, 2025
  12. 09/14 commit: add commit_stack_init()René Scharfe, Dec 24, 2025
  13. 13/14 commit-graph: use commit_stackRené Scharfe, Dec 24, 2025
  14. 14/14 commit-reach: use commit_stackRené Scharfe, Dec 24, 2025
  15. 12/14 commit: add commit_stack_grow()René Scharfe, Dec 24, 2025

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.