aboutsummaryrefslogtreecommitdiff
path: root/commit.c
diff options
context:
space:
mode:
authorRené Scharfe <l.s.r@web.de>2025-12-24 18:03:25 +0100
committerJunio C Hamano <gitster@pobox.com>2025-12-25 08:29:28 +0900
commit958a816794b9382fe90585b674ee8b96ed6aa8bf (patch)
tree5698154839c6841e77ceed2e46e58b041e13cfe8 /commit.c
parent506a7b66908eb5c3898a3eadbd402308f5b43cf8 (diff)
downloadgit-958a816794b9382fe90585b674ee8b96ed6aa8bf.tar.xz
commit: add commit_stack_grow()
Add a function for increasing the capacity of a commit_stack. It is useful for reducing reallocations when the target size is known in advance. Signed-off-by: René Scharfe <l.s.r@web.de> Signed-off-by: Junio C Hamano <gitster@pobox.com>
Diffstat (limited to 'commit.c')
-rw-r--r--commit.c7
1 files changed, 6 insertions, 1 deletions
diff --git a/commit.c b/commit.c
index 55b1c8d2f8..28bb5ce029 100644
--- a/commit.c
+++ b/commit.c
@@ -1988,9 +1988,14 @@ void commit_stack_init(struct commit_stack *stack)
stack->nr = stack->alloc = 0;
}
+void commit_stack_grow(struct commit_stack *stack, size_t extra)
+{
+ ALLOC_GROW(stack->items, st_add(stack->nr, extra), stack->alloc);
+}
+
void commit_stack_push(struct commit_stack *stack, struct commit *commit)
{
- ALLOC_GROW(stack->items, stack->nr + 1, stack->alloc);
+ commit_stack_grow(stack, 1);
stack->items[stack->nr++] = commit;
}