mirror of
				https://git.proxmox.com/git/libgit2
				synced 2025-10-31 19:49:16 +00:00 
			
		
		
		
	 86d7e1ca6f
			
		
	
	
		86d7e1ca6f
		
	
	
	
	
		
			
			We now store only one sorting callback that does entry comparison. This is used when sorting the entries using a quicksort, and when looking for a specific entry with the new search methods. The following search methods now exist: git_vector_search(vector, entry) git_vector_search2(vector, custom_search_callback, key) git_vector_bsearch(vector, entry) git_vector_bsearch2(vector, custom_search_callback, key) The sorting state of the vector is now stored internally. Signed-off-by: Vicent Marti <tanoku@gmail.com>
		
			
				
	
	
		
			37 lines
		
	
	
		
			1010 B
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			37 lines
		
	
	
		
			1010 B
		
	
	
	
		
			C
		
	
	
	
	
	
| #ifndef INCLUDE_vector_h__
 | |
| #define INCLUDE_vector_h__
 | |
| 
 | |
| #include "git2/common.h"
 | |
| 
 | |
| typedef int (*git_vector_cmp)(const void *, const void *);
 | |
| 
 | |
| typedef struct git_vector {
 | |
| 	unsigned int _alloc_size;
 | |
| 	git_vector_cmp _cmp;
 | |
| 	void **contents;
 | |
| 	unsigned int length;
 | |
| 	int sorted;
 | |
| } git_vector;
 | |
| 
 | |
| int git_vector_init(git_vector *v, unsigned int initial_size, git_vector_cmp cmp);
 | |
| void git_vector_free(git_vector *v);
 | |
| void git_vector_clear(git_vector *v);
 | |
| 
 | |
| int git_vector_search(git_vector *v, const void *entry);
 | |
| int git_vector_search2(git_vector *v, git_vector_cmp cmp, const void *key);
 | |
| 
 | |
| int git_vector_bsearch(git_vector *v, const void *entry);
 | |
| int git_vector_bsearch2(git_vector *v, git_vector_cmp cmp, const void *key);
 | |
| 
 | |
| void git_vector_sort(git_vector *v);
 | |
| 
 | |
| GIT_INLINE(void *) git_vector_get(git_vector *v, unsigned int position)
 | |
| {
 | |
| 	return (position < v->length) ? v->contents[position] : NULL;
 | |
| }
 | |
| 
 | |
| int git_vector_insert(git_vector *v, void *element);
 | |
| int git_vector_remove(git_vector *v, unsigned int idx);
 | |
| 
 | |
| #endif
 |