diff options
Diffstat (limited to 'src/vector.c')
-rw-r--r-- | src/vector.c | 16 |
1 files changed, 16 insertions, 0 deletions
diff --git a/src/vector.c b/src/vector.c index 9e217b831..b1ea89606 100644 --- a/src/vector.c +++ b/src/vector.c @@ -104,6 +104,22 @@ int git_vector_init(git_vector *v, size_t initial_size, git_vector_cmp cmp) return resize_vector(v, max(initial_size, MIN_ALLOCSIZE)); } +void **git_vector_detach(size_t *size, size_t *asize, git_vector *v) +{ + void **data = v->contents; + + if (size) + *size = v->length; + if (asize) + *asize = v->_alloc_size; + + v->_alloc_size = 0; + v->length = 0; + v->contents = NULL; + + return data; +} + int git_vector_insert(git_vector *v, void *element) { assert(v); |