From e5c8009731f3ccaf67b5b62546d890301ecb1f25 Mon Sep 17 00:00:00 2001 From: Romain Geissler Date: Sun, 5 Jun 2011 21:18:05 +0200 Subject: [PATCH 1/3] Tree: API uniformasation: Use unsigned int for all index number. --- include/git2/tree.h | 4 ++-- src/tree.c | 6 +++--- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/include/git2/tree.h b/include/git2/tree.h index 0caf60a48..2a4522b3c 100644 --- a/include/git2/tree.h +++ b/include/git2/tree.h @@ -84,7 +84,7 @@ GIT_EXTERN(const git_oid *) git_tree_id(git_tree *tree); * @param tree a previously loaded tree. * @return the number of entries in the tree */ -GIT_EXTERN(size_t) git_tree_entrycount(git_tree *tree); +GIT_EXTERN(unsigned int) git_tree_entrycount(git_tree *tree); /** * Lookup a tree entry by its filename @@ -102,7 +102,7 @@ GIT_EXTERN(const git_tree_entry *) git_tree_entry_byname(git_tree *tree, const c * @param idx the position in the entry list * @return the tree entry; NULL if not found */ -GIT_EXTERN(const git_tree_entry *) git_tree_entry_byindex(git_tree *tree, int idx); +GIT_EXTERN(const git_tree_entry *) git_tree_entry_byindex(git_tree *tree, unsigned int idx); /** * Get the UNIX file attributes of a tree entry diff --git a/src/tree.c b/src/tree.c index 60413e276..111159773 100644 --- a/src/tree.c +++ b/src/tree.c @@ -119,13 +119,13 @@ const git_tree_entry *git_tree_entry_byname(git_tree *tree, const char *filename return git_vector_get(&tree->entries, idx); } -const git_tree_entry *git_tree_entry_byindex(git_tree *tree, int idx) +const git_tree_entry *git_tree_entry_byindex(git_tree *tree, unsigned int idx) { assert(tree); - return git_vector_get(&tree->entries, (unsigned int)idx); + return git_vector_get(&tree->entries, idx); } -size_t git_tree_entrycount(git_tree *tree) +unsigned int git_tree_entrycount(git_tree *tree) { assert(tree); return tree->entries.length; From f11e079733e38c83bbc1b00c75c96c031825ec25 Mon Sep 17 00:00:00 2001 From: Romain Geissler Date: Sun, 5 Jun 2011 21:19:03 +0200 Subject: [PATCH 2/3] Index: API uniformisation: Use unsigned int for all index number. Feature Added: Search an unmerged entry by path (git_index_get_unmerged renamed to git_index_get_unmerged_bypath) or by index (git_index_get_unmerged_byindex). --- include/git2/index.h | 16 ++++++++++++++-- src/index.c | 12 +++++++++--- 2 files changed, 23 insertions(+), 5 deletions(-) diff --git a/include/git2/index.h b/include/git2/index.h index fa1cadeab..83a18e160 100644 --- a/include/git2/index.h +++ b/include/git2/index.h @@ -257,7 +257,7 @@ GIT_EXTERN(int) git_index_remove(git_index *index, int position); * @param n the position of the entry * @return a pointer to the entry; NULL if out of bounds */ -GIT_EXTERN(git_index_entry *) git_index_get(git_index *index, int n); +GIT_EXTERN(git_index_entry *) git_index_get(git_index *index, unsigned int n); /** * Get the count of entries currently in the index @@ -285,7 +285,19 @@ GIT_EXTERN(unsigned int) git_index_entrycount_unmerged(git_index *index); * @param path path to search * @return the unmerged entry; NULL if not found */ -GIT_EXTERN(const git_index_entry_unmerged *) git_index_get_unmerged(git_index *index, const char *path); +GIT_EXTERN(const git_index_entry_unmerged *) git_index_get_unmerged_bypath(git_index *index, const char *path); + +/** + * Get an unmerged entry from the index. + * + * The returned entry is read-only and should not be modified + * of freed by the caller. + * + * @param index an existing index object + * @param n the position of the entry + * @return a pointer to the unmerged entry; NULL if out of bounds + */ +GIT_EXTERN(const git_index_entry_unmerged *) git_index_get_unmerged_byindex(git_index *index, unsigned int n); /** * Return the stage number from a git index entry diff --git a/src/index.c b/src/index.c index c86d37a08..e25c899a3 100644 --- a/src/index.c +++ b/src/index.c @@ -322,11 +322,11 @@ unsigned int git_index_entrycount_unmerged(git_index *index) return index->unmerged.length; } -git_index_entry *git_index_get(git_index *index, int n) +git_index_entry *git_index_get(git_index *index, unsigned int n) { assert(index); sort_index(index); - return git_vector_get(&index->entries, (unsigned int)n); + return git_vector_get(&index->entries, n); } static void sort_index(git_index *index) @@ -479,7 +479,7 @@ int git_index_find(git_index *index, const char *path) return git_vector_bsearch2(&index->entries, index_srch, path); } -const git_index_entry_unmerged *git_index_get_unmerged(git_index *index, const char *path) +const git_index_entry_unmerged *git_index_get_unmerged_bypath(git_index *index, const char *path) { int pos; assert(index && path); @@ -493,6 +493,12 @@ const git_index_entry_unmerged *git_index_get_unmerged(git_index *index, const c return git_vector_get(&index->unmerged, pos); } +const git_index_entry_unmerged *git_index_get_unmerged_byindex(git_index *index, unsigned int n) +{ + assert(index); + return git_vector_get(&index->unmerged, n); +} + static int read_tree_internal(git_index_tree **out, const char **buffer_in, const char *buffer_end, git_index_tree *parent) From c5d8745fca5c6f098b76d00c9c1b169c1a66610f Mon Sep 17 00:00:00 2001 From: Romain Geissler Date: Mon, 6 Jun 2011 10:55:54 +0200 Subject: [PATCH 3/3] Tree: Some more size_t to unsigned int type change. --- src/tree.c | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/src/tree.c b/src/tree.c index 111159773..9d26b8c8d 100644 --- a/src/tree.c +++ b/src/tree.c @@ -288,7 +288,7 @@ static void sort_entries(git_treebuilder *bld) int git_treebuilder_create(git_treebuilder **builder_p, const git_tree *source) { git_treebuilder *bld; - size_t i, source_entries = DEFAULT_TREE_SIZE; + unsigned int i, source_entries = DEFAULT_TREE_SIZE; assert(builder_p); @@ -409,7 +409,7 @@ int git_treebuilder_remove(git_treebuilder *bld, const char *filename) int git_treebuilder_write(git_oid *oid, git_repository *repo, git_treebuilder *bld) { - size_t i, size = 0; + unsigned int i, size = 0; char filemode[MAX_FILEMODE_BYTES + 1 + 1]; git_odb_stream *stream; int error; @@ -443,7 +443,7 @@ int git_treebuilder_write(git_oid *oid, git_repository *repo, git_treebuilder *b stream->write(stream, filemode, strlen(filemode)); stream->write(stream, entry->filename, entry->filename_len + 1); stream->write(stream, (char *)entry->oid.id, GIT_OID_RAWSZ); - } + } error = stream->finalize_write(oid, stream); stream->free(stream); @@ -453,7 +453,7 @@ int git_treebuilder_write(git_oid *oid, git_repository *repo, git_treebuilder *b void git_treebuilder_filter(git_treebuilder *bld, int (*filter)(const git_tree_entry *, void *), void *payload) { - size_t i; + unsigned int i; assert(bld && filter); @@ -466,7 +466,7 @@ void git_treebuilder_filter(git_treebuilder *bld, int (*filter)(const git_tree_e void git_treebuilder_clear(git_treebuilder *bld) { - size_t i; + unsigned int i; assert(bld); for (i = 0; i < bld->entries.length; ++i) {