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>
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;
}
#define COMMIT_STACK_INIT { 0 }
void commit_stack_init(struct commit_stack *);
+void commit_stack_grow(struct commit_stack *, size_t);
void commit_stack_push(struct commit_stack *, struct commit *);
struct commit *commit_stack_pop(struct commit_stack *);
void commit_stack_clear(struct commit_stack *);