mirror of
https://git.proxmox.com/git/libgit2
synced 2025-08-05 18:38:34 +00:00
Fix up some missing consts in tree & index
This fixes some missed places where we can apply const-ness to various public APIs. There are still some index and tree APIs that cannot take const pointers because we sort our `git_vectors` lazily and so we can't reliably bsearch the index and tree content without applying a `git_vector_sort()` first. This also fixes some missed places where size_t can be used and where const can be applied to a couple internal functions.
This commit is contained in:
parent
f45d51ff8e
commit
16248ee2d1
@ -258,7 +258,7 @@ GIT_EXTERN(int) git_index_write_tree_to(git_oid *out, git_index *index, git_repo
|
||||
* @param index an existing index object
|
||||
* @return integer of count of current entries
|
||||
*/
|
||||
GIT_EXTERN(unsigned int) git_index_entrycount(git_index *index);
|
||||
GIT_EXTERN(unsigned int) git_index_entrycount(const git_index *index);
|
||||
|
||||
/**
|
||||
* Clear the contents (all the entries) of an index object.
|
||||
@ -282,7 +282,8 @@ GIT_EXTERN(void) git_index_clear(git_index *index);
|
||||
* @param n the position of the entry
|
||||
* @return a pointer to the entry; NULL if out of bounds
|
||||
*/
|
||||
GIT_EXTERN(const git_index_entry *) git_index_get_byindex(git_index *index, size_t n);
|
||||
GIT_EXTERN(const git_index_entry *) git_index_get_byindex(
|
||||
git_index *index, size_t n);
|
||||
|
||||
/**
|
||||
* Get a pointer to one of the entries in the index
|
||||
@ -298,7 +299,8 @@ GIT_EXTERN(const git_index_entry *) git_index_get_byindex(git_index *index, size
|
||||
* @param stage stage to search
|
||||
* @return a pointer to the entry; NULL if it was not found
|
||||
*/
|
||||
GIT_EXTERN(const git_index_entry *) git_index_get_bypath(git_index *index, const char *path, int stage);
|
||||
GIT_EXTERN(const git_index_entry *) git_index_get_bypath(
|
||||
git_index *index, const char *path, int stage);
|
||||
|
||||
/**
|
||||
* Remove an entry from the index
|
||||
@ -443,7 +445,7 @@ GIT_EXTERN(void) git_index_conflict_cleanup(git_index *index);
|
||||
*
|
||||
* @return 1 if at least one conflict is found, 0 otherwise.
|
||||
*/
|
||||
GIT_EXTERN(int) git_index_has_conflicts(git_index *index);
|
||||
GIT_EXTERN(int) git_index_has_conflicts(const git_index *index);
|
||||
|
||||
/**@}*/
|
||||
|
||||
|
@ -127,7 +127,7 @@ GIT_EXTERN(const git_tree_entry *) git_tree_entry_byindex(
|
||||
* @return the tree entry; NULL if not found
|
||||
*/
|
||||
GIT_EXTERN(const git_tree_entry *) git_tree_entry_byoid(
|
||||
git_tree *tree, const git_oid *oid);
|
||||
const git_tree *tree, const git_oid *oid);
|
||||
|
||||
/**
|
||||
* Retrieve a tree entry contained in a tree or in any of its subtrees,
|
||||
@ -351,18 +351,15 @@ typedef enum {
|
||||
} git_treewalk_mode;
|
||||
|
||||
/**
|
||||
* Traverse the entries in a tree and its subtrees in
|
||||
* post or pre order
|
||||
* Traverse the entries in a tree and its subtrees in post or pre order.
|
||||
*
|
||||
* The entries will be traversed in the specified order,
|
||||
* children subtrees will be automatically loaded as required,
|
||||
* and the `callback` will be called once per entry with
|
||||
* the current (relative) root for the entry and the entry
|
||||
* data itself.
|
||||
* The entries will be traversed in the specified order, children subtrees
|
||||
* will be automatically loaded as required, and the `callback` will be
|
||||
* called once per entry with the current (relative) root for the entry and
|
||||
* the entry data itself.
|
||||
*
|
||||
* If the callback returns a positive value, the passed entry will be
|
||||
* skipped on the traversal (in pre mode). A negative value stops the
|
||||
* walk.
|
||||
* skipped on the traversal (in pre mode). A negative value stops the walk.
|
||||
*
|
||||
* @param tree The tree to walk
|
||||
* @param mode Traversal mode (pre or post-order)
|
||||
|
38
src/index.c
38
src/index.c
@ -298,7 +298,7 @@ static void index_free(git_index *index)
|
||||
{
|
||||
git_index_entry *e;
|
||||
git_index_reuc_entry *reuc;
|
||||
unsigned int i;
|
||||
size_t i;
|
||||
|
||||
git_index_clear(index);
|
||||
git_vector_foreach(&index->entries, i, e) {
|
||||
@ -488,20 +488,22 @@ int git_index_write_tree_to(git_oid *oid, git_index *index, git_repository *repo
|
||||
return git_tree__write_index(oid, index, repo);
|
||||
}
|
||||
|
||||
unsigned int git_index_entrycount(git_index *index)
|
||||
unsigned int git_index_entrycount(const git_index *index)
|
||||
{
|
||||
assert(index);
|
||||
return (unsigned int)index->entries.length;
|
||||
}
|
||||
|
||||
const git_index_entry *git_index_get_byindex(git_index *index, size_t n)
|
||||
const git_index_entry *git_index_get_byindex(
|
||||
git_index *index, size_t n)
|
||||
{
|
||||
assert(index);
|
||||
git_vector_sort(&index->entries);
|
||||
return git_vector_get(&index->entries, n);
|
||||
}
|
||||
|
||||
const git_index_entry *git_index_get_bypath(git_index *index, const char *path, int stage)
|
||||
const git_index_entry *git_index_get_bypath(
|
||||
git_index *index, const char *path, int stage)
|
||||
{
|
||||
int pos;
|
||||
|
||||
@ -810,13 +812,15 @@ int git_index_find(git_index *index, const char *path)
|
||||
|
||||
assert(index && path);
|
||||
|
||||
if ((pos = git_vector_bsearch2(&index->entries, index->entries_search_path, path)) < 0)
|
||||
if ((pos = git_vector_bsearch2(
|
||||
&index->entries, index->entries_search_path, path)) < 0)
|
||||
return pos;
|
||||
|
||||
/* Since our binary search only looked at path, we may be in the
|
||||
* middle of a list of stages. */
|
||||
* middle of a list of stages.
|
||||
*/
|
||||
while (pos > 0) {
|
||||
git_index_entry *prev = git_vector_get(&index->entries, pos-1);
|
||||
const git_index_entry *prev = git_vector_get(&index->entries, pos-1);
|
||||
|
||||
if (index->entries_cmp_path(prev->path, path) != 0)
|
||||
break;
|
||||
@ -827,10 +831,10 @@ int git_index_find(git_index *index, const char *path)
|
||||
return pos;
|
||||
}
|
||||
|
||||
unsigned int git_index__prefix_position(git_index *index, const char *path)
|
||||
size_t git_index__prefix_position(git_index *index, const char *path)
|
||||
{
|
||||
struct entry_srch_key srch_key;
|
||||
unsigned int pos;
|
||||
size_t pos;
|
||||
|
||||
srch_key.path = path;
|
||||
srch_key.stage = 0;
|
||||
@ -961,7 +965,7 @@ int git_index_conflict_remove(git_index *index, const char *path)
|
||||
return error;
|
||||
}
|
||||
|
||||
static int index_conflicts_match(git_vector *v, size_t idx)
|
||||
static int index_conflicts_match(const git_vector *v, size_t idx)
|
||||
{
|
||||
git_index_entry *entry = git_vector_get(v, idx);
|
||||
|
||||
@ -979,9 +983,9 @@ void git_index_conflict_cleanup(git_index *index)
|
||||
git_vector_remove_matching(&index->entries, index_conflicts_match);
|
||||
}
|
||||
|
||||
int git_index_has_conflicts(git_index *index)
|
||||
int git_index_has_conflicts(const git_index *index)
|
||||
{
|
||||
unsigned int i;
|
||||
size_t i;
|
||||
git_index_entry *entry;
|
||||
|
||||
assert(index);
|
||||
@ -1361,7 +1365,7 @@ static int parse_index(git_index *index, const char *buffer, size_t buffer_size)
|
||||
|
||||
static int is_index_extended(git_index *index)
|
||||
{
|
||||
unsigned int i, extended;
|
||||
size_t i, extended;
|
||||
git_index_entry *entry;
|
||||
|
||||
extended = 0;
|
||||
@ -1374,7 +1378,7 @@ static int is_index_extended(git_index *index)
|
||||
}
|
||||
}
|
||||
|
||||
return extended;
|
||||
return (int)extended;
|
||||
}
|
||||
|
||||
static int write_disk_entry(git_filebuf *file, git_index_entry *entry)
|
||||
@ -1440,7 +1444,7 @@ static int write_disk_entry(git_filebuf *file, git_index_entry *entry)
|
||||
static int write_entries(git_index *index, git_filebuf *file)
|
||||
{
|
||||
int error = 0;
|
||||
unsigned int i;
|
||||
size_t i;
|
||||
git_vector case_sorted;
|
||||
git_index_entry *entry;
|
||||
git_vector *out = &index->entries;
|
||||
@ -1506,7 +1510,7 @@ static int write_reuc_extension(git_index *index, git_filebuf *file)
|
||||
git_vector *out = &index->reuc;
|
||||
git_index_reuc_entry *reuc;
|
||||
struct index_extension extension;
|
||||
unsigned int i;
|
||||
size_t i;
|
||||
int error = 0;
|
||||
|
||||
git_vector_foreach(out, i, reuc) {
|
||||
@ -1529,9 +1533,7 @@ done:
|
||||
static int write_index(git_index *index, git_filebuf *file)
|
||||
{
|
||||
git_oid hash_final;
|
||||
|
||||
struct index_header header;
|
||||
|
||||
int is_extended;
|
||||
|
||||
assert(index && file);
|
||||
|
@ -43,7 +43,7 @@ struct git_index {
|
||||
|
||||
extern void git_index_entry__init_from_stat(git_index_entry *entry, struct stat *st);
|
||||
|
||||
extern unsigned int git_index__prefix_position(git_index *index, const char *path);
|
||||
extern size_t git_index__prefix_position(git_index *index, const char *path);
|
||||
|
||||
extern int git_index_entry__cmp(const void *a, const void *b);
|
||||
extern int git_index_entry__cmp_icase(const void *a, const void *b);
|
||||
|
@ -434,7 +434,7 @@ typedef struct workdir_iterator_frame workdir_iterator_frame;
|
||||
struct workdir_iterator_frame {
|
||||
workdir_iterator_frame *next;
|
||||
git_vector entries;
|
||||
unsigned int index;
|
||||
size_t index;
|
||||
char *start;
|
||||
};
|
||||
|
||||
@ -761,7 +761,8 @@ static int spoolandsort_iterator__current(
|
||||
spoolandsort_iterator *si = (spoolandsort_iterator *)self;
|
||||
|
||||
if (si->position < si->entries.length)
|
||||
*entry = (const git_index_entry *)git_vector_get_const(&si->entries, si->position);
|
||||
*entry = (const git_index_entry *)git_vector_get(
|
||||
&si->entries, si->position);
|
||||
else
|
||||
*entry = NULL;
|
||||
|
||||
@ -781,7 +782,8 @@ static int spoolandsort_iterator__advance(
|
||||
spoolandsort_iterator *si = (spoolandsort_iterator *)self;
|
||||
|
||||
if (si->position < si->entries.length)
|
||||
*entry = (const git_index_entry *)git_vector_get_const(&si->entries, ++si->position);
|
||||
*entry = (const git_index_entry *)git_vector_get(
|
||||
&si->entries, ++si->position);
|
||||
else
|
||||
*entry = NULL;
|
||||
|
||||
|
33
src/tree.c
33
src/tree.c
@ -98,11 +98,11 @@ static int homing_search_cmp(const void *key, const void *array_member)
|
||||
* ambiguous because of folder vs file sorting, we look linearly
|
||||
* around the area for our target file.
|
||||
*/
|
||||
static int tree_key_search(git_vector *entries, const char *filename, size_t filename_len)
|
||||
static int tree_key_search(
|
||||
git_vector *entries, const char *filename, size_t filename_len)
|
||||
{
|
||||
struct tree_key_search ksearch;
|
||||
const git_tree_entry *entry;
|
||||
|
||||
int homing, i;
|
||||
|
||||
ksearch.filename = filename;
|
||||
@ -226,7 +226,8 @@ int git_tree_entry_to_object(
|
||||
return git_object_lookup(object_out, repo, &entry->oid, GIT_OBJ_ANY);
|
||||
}
|
||||
|
||||
static git_tree_entry *entry_fromname(git_tree *tree, const char *name, size_t name_len)
|
||||
static const git_tree_entry *entry_fromname(
|
||||
git_tree *tree, const char *name, size_t name_len)
|
||||
{
|
||||
int idx = tree_key_search(&tree->entries, name, name_len);
|
||||
if (idx < 0)
|
||||
@ -235,22 +236,25 @@ static git_tree_entry *entry_fromname(git_tree *tree, const char *name, size_t n
|
||||
return git_vector_get(&tree->entries, idx);
|
||||
}
|
||||
|
||||
const git_tree_entry *git_tree_entry_byname(git_tree *tree, const char *filename)
|
||||
const git_tree_entry *git_tree_entry_byname(
|
||||
git_tree *tree, const char *filename)
|
||||
{
|
||||
assert(tree && filename);
|
||||
return entry_fromname(tree, filename, strlen(filename));
|
||||
}
|
||||
|
||||
const git_tree_entry *git_tree_entry_byindex(git_tree *tree, size_t idx)
|
||||
const git_tree_entry *git_tree_entry_byindex(
|
||||
git_tree *tree, size_t idx)
|
||||
{
|
||||
assert(tree);
|
||||
return git_vector_get(&tree->entries, idx);
|
||||
}
|
||||
|
||||
const git_tree_entry *git_tree_entry_byoid(git_tree *tree, const git_oid *oid)
|
||||
const git_tree_entry *git_tree_entry_byoid(
|
||||
const git_tree *tree, const git_oid *oid)
|
||||
{
|
||||
unsigned int i;
|
||||
git_tree_entry *e;
|
||||
size_t i;
|
||||
const git_tree_entry *e;
|
||||
|
||||
assert(tree);
|
||||
|
||||
@ -266,7 +270,7 @@ int git_tree__prefix_position(git_tree *tree, const char *path)
|
||||
{
|
||||
git_vector *entries = &tree->entries;
|
||||
struct tree_key_search ksearch;
|
||||
unsigned int at_pos;
|
||||
size_t at_pos;
|
||||
|
||||
ksearch.filename = path;
|
||||
ksearch.filename_len = strlen(path);
|
||||
@ -286,7 +290,7 @@ int git_tree__prefix_position(git_tree *tree, const char *path)
|
||||
break;
|
||||
}
|
||||
|
||||
return at_pos;
|
||||
return (int)at_pos;
|
||||
}
|
||||
|
||||
size_t git_tree_entrycount(const git_tree *tree)
|
||||
@ -422,7 +426,7 @@ static int write_tree(
|
||||
*/
|
||||
for (i = start; i < entries; ++i) {
|
||||
const git_index_entry *entry = git_index_get_byindex(index, i);
|
||||
char *filename, *next_slash;
|
||||
const char *filename, *next_slash;
|
||||
|
||||
/*
|
||||
* If we've left our (sub)tree, exit the loop and return. The
|
||||
@ -497,7 +501,8 @@ on_error:
|
||||
return -1;
|
||||
}
|
||||
|
||||
int git_tree__write_index(git_oid *oid, git_index *index, git_repository *repo)
|
||||
int git_tree__write_index(
|
||||
git_oid *oid, git_index *index, git_repository *repo)
|
||||
{
|
||||
int ret;
|
||||
|
||||
@ -814,10 +819,10 @@ static int tree_walk(
|
||||
bool preorder)
|
||||
{
|
||||
int error = 0;
|
||||
unsigned int i;
|
||||
size_t i;
|
||||
|
||||
for (i = 0; i < tree->entries.length; ++i) {
|
||||
git_tree_entry *entry = tree->entries.contents[i];
|
||||
const git_tree_entry *entry = tree->entries.contents[i];
|
||||
|
||||
if (preorder) {
|
||||
error = callback(path->ptr, entry, payload);
|
||||
|
@ -51,7 +51,8 @@ int git_tree__prefix_position(git_tree *tree, const char *prefix);
|
||||
/**
|
||||
* Write a tree to the given repository
|
||||
*/
|
||||
int git_tree__write_index(git_oid *oid, git_index *index, git_repository *repo);
|
||||
int git_tree__write_index(
|
||||
git_oid *oid, git_index *index, git_repository *repo);
|
||||
|
||||
/**
|
||||
* Obsolete mode kept for compatibility reasons
|
||||
|
@ -447,7 +447,7 @@ int git__bsearch(
|
||||
|
||||
/**
|
||||
* A strcmp wrapper
|
||||
*
|
||||
*
|
||||
* We don't want direct pointers to the CRT on Windows, we may
|
||||
* get stdcall conflicts.
|
||||
*/
|
||||
|
35
src/vector.c
35
src/vector.c
@ -9,14 +9,14 @@
|
||||
#include "repository.h"
|
||||
#include "vector.h"
|
||||
|
||||
static const double resize_factor = 1.75;
|
||||
static const unsigned int minimum_size = 8;
|
||||
static const double git_vector_resize_factor = 1.75;
|
||||
static const size_t git_vector_minimum_size = 8;
|
||||
|
||||
static int resize_vector(git_vector *v)
|
||||
{
|
||||
v->_alloc_size = ((unsigned int)(v->_alloc_size * resize_factor)) + 1;
|
||||
if (v->_alloc_size < minimum_size)
|
||||
v->_alloc_size = minimum_size;
|
||||
v->_alloc_size = (size_t)(v->_alloc_size * git_vector_resize_factor) + 1;
|
||||
if (v->_alloc_size < git_vector_minimum_size)
|
||||
v->_alloc_size = git_vector_minimum_size;
|
||||
|
||||
v->contents = git__realloc(v->contents, v->_alloc_size * sizeof(void *));
|
||||
GITERR_CHECK_ALLOC(v->contents);
|
||||
@ -24,7 +24,7 @@ static int resize_vector(git_vector *v)
|
||||
return 0;
|
||||
}
|
||||
|
||||
int git_vector_dup(git_vector *v, git_vector *src, git_vector_cmp cmp)
|
||||
int git_vector_dup(git_vector *v, const git_vector *src, git_vector_cmp cmp)
|
||||
{
|
||||
assert(v && src);
|
||||
|
||||
@ -58,7 +58,7 @@ int git_vector_init(git_vector *v, size_t initial_size, git_vector_cmp cmp)
|
||||
memset(v, 0x0, sizeof(git_vector));
|
||||
|
||||
if (initial_size == 0)
|
||||
initial_size = minimum_size;
|
||||
initial_size = git_vector_minimum_size;
|
||||
|
||||
v->_alloc_size = initial_size;
|
||||
v->_cmp = cmp;
|
||||
@ -133,7 +133,7 @@ void git_vector_sort(git_vector *v)
|
||||
}
|
||||
|
||||
int git_vector_bsearch3(
|
||||
unsigned int *at_pos,
|
||||
size_t *at_pos,
|
||||
git_vector *v,
|
||||
git_vector_cmp key_lookup,
|
||||
const void *key)
|
||||
@ -151,15 +151,15 @@ int git_vector_bsearch3(
|
||||
rval = git__bsearch(v->contents, v->length, key, key_lookup, &pos);
|
||||
|
||||
if (at_pos != NULL)
|
||||
*at_pos = (unsigned int)pos;
|
||||
*at_pos = pos;
|
||||
|
||||
return (rval >= 0) ? (int)pos : GIT_ENOTFOUND;
|
||||
}
|
||||
|
||||
int git_vector_search2(
|
||||
git_vector *v, git_vector_cmp key_lookup, const void *key)
|
||||
const git_vector *v, git_vector_cmp key_lookup, const void *key)
|
||||
{
|
||||
unsigned int i;
|
||||
size_t i;
|
||||
|
||||
assert(v && key && key_lookup);
|
||||
|
||||
@ -176,14 +176,14 @@ static int strict_comparison(const void *a, const void *b)
|
||||
return (a == b) ? 0 : -1;
|
||||
}
|
||||
|
||||
int git_vector_search(git_vector *v, const void *entry)
|
||||
int git_vector_search(const git_vector *v, const void *entry)
|
||||
{
|
||||
return git_vector_search2(v, v->_cmp ? v->_cmp : strict_comparison, entry);
|
||||
}
|
||||
|
||||
int git_vector_remove(git_vector *v, unsigned int idx)
|
||||
int git_vector_remove(git_vector *v, size_t idx)
|
||||
{
|
||||
unsigned int i;
|
||||
size_t i;
|
||||
|
||||
assert(v);
|
||||
|
||||
@ -206,7 +206,7 @@ void git_vector_pop(git_vector *v)
|
||||
void git_vector_uniq(git_vector *v)
|
||||
{
|
||||
git_vector_cmp cmp;
|
||||
unsigned int i, j;
|
||||
size_t i, j;
|
||||
|
||||
if (v->length <= 1)
|
||||
return;
|
||||
@ -223,9 +223,10 @@ void git_vector_uniq(git_vector *v)
|
||||
v->length -= j - i - 1;
|
||||
}
|
||||
|
||||
void git_vector_remove_matching(git_vector *v, int (*match)(git_vector *v, size_t idx))
|
||||
void git_vector_remove_matching(
|
||||
git_vector *v, int (*match)(const git_vector *v, size_t idx))
|
||||
{
|
||||
unsigned int i, j;
|
||||
size_t i, j;
|
||||
|
||||
for (i = 0, j = 0; j < v->length; ++j) {
|
||||
v->contents[i] = v->contents[j];
|
||||
|
20
src/vector.h
20
src/vector.h
@ -24,23 +24,23 @@ typedef struct git_vector {
|
||||
int git_vector_init(git_vector *v, size_t initial_size, git_vector_cmp cmp);
|
||||
void git_vector_free(git_vector *v);
|
||||
void git_vector_clear(git_vector *v);
|
||||
int git_vector_dup(git_vector *v, git_vector *src, git_vector_cmp cmp);
|
||||
int git_vector_dup(git_vector *v, const git_vector *src, git_vector_cmp cmp);
|
||||
void git_vector_swap(git_vector *a, git_vector *b);
|
||||
|
||||
void git_vector_sort(git_vector *v);
|
||||
|
||||
/** Linear search for matching entry using internal comparison function */
|
||||
int git_vector_search(git_vector *v, const void *entry);
|
||||
int git_vector_search(const git_vector *v, const void *entry);
|
||||
|
||||
/** Linear search for matching entry using explicit comparison function */
|
||||
int git_vector_search2(git_vector *v, git_vector_cmp cmp, const void *key);
|
||||
int git_vector_search2(const git_vector *v, git_vector_cmp cmp, const void *key);
|
||||
|
||||
/**
|
||||
* Binary search for matching entry using explicit comparison function that
|
||||
* returns position where item would go if not found.
|
||||
*/
|
||||
int git_vector_bsearch3(
|
||||
unsigned int *at_pos, git_vector *v, git_vector_cmp cmp, const void *key);
|
||||
size_t *at_pos, git_vector *v, git_vector_cmp cmp, const void *key);
|
||||
|
||||
/** Binary search for matching entry using internal comparison function */
|
||||
GIT_INLINE(int) git_vector_bsearch(git_vector *v, const void *key)
|
||||
@ -60,14 +60,9 @@ GIT_INLINE(void *) git_vector_get(const git_vector *v, size_t position)
|
||||
return (position < v->length) ? v->contents[position] : NULL;
|
||||
}
|
||||
|
||||
GIT_INLINE(const void *) git_vector_get_const(const git_vector *v, size_t position)
|
||||
{
|
||||
return (position < v->length) ? v->contents[position] : NULL;
|
||||
}
|
||||
|
||||
#define GIT_VECTOR_GET(V,I) ((I) < (V)->length ? (V)->contents[(I)] : NULL)
|
||||
|
||||
GIT_INLINE(void *) git_vector_last(git_vector *v)
|
||||
GIT_INLINE(void *) git_vector_last(const git_vector *v)
|
||||
{
|
||||
return (v->length > 0) ? git_vector_get(v, v->length - 1) : NULL;
|
||||
}
|
||||
@ -81,10 +76,11 @@ GIT_INLINE(void *) git_vector_last(git_vector *v)
|
||||
int git_vector_insert(git_vector *v, void *element);
|
||||
int git_vector_insert_sorted(git_vector *v, void *element,
|
||||
int (*on_dup)(void **old, void *new));
|
||||
int git_vector_remove(git_vector *v, unsigned int idx);
|
||||
int git_vector_remove(git_vector *v, size_t idx);
|
||||
void git_vector_pop(git_vector *v);
|
||||
void git_vector_uniq(git_vector *v);
|
||||
void git_vector_remove_matching(git_vector *v, int (*match)(git_vector *v, size_t idx));
|
||||
void git_vector_remove_matching(
|
||||
git_vector *v, int (*match)(const git_vector *v, size_t idx));
|
||||
|
||||
int git_vector_resize_to(git_vector *v, size_t new_length);
|
||||
int git_vector_set(void **old, git_vector *v, size_t position, void *value);
|
||||
|
@ -190,7 +190,7 @@ void test_core_vector__5(void)
|
||||
git_vector_free(&x);
|
||||
}
|
||||
|
||||
static int remove_ones(git_vector *v, size_t idx)
|
||||
static int remove_ones(const git_vector *v, size_t idx)
|
||||
{
|
||||
return (git_vector_get(v, idx) == (void *)0x001);
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user