Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/mono/libgit2.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/blame.c5
-rw-r--r--src/checkout.c10
-rw-r--r--src/diff.c9
-rw-r--r--src/diff_tform.c8
-rw-r--r--src/indexer.c20
-rw-r--r--src/iterator.c7
-rw-r--r--src/merge.c6
-rw-r--r--src/pathspec.c10
-rw-r--r--src/push.c5
-rw-r--r--src/remote.c14
-rw-r--r--src/status.c8
-rw-r--r--src/vector.c14
-rw-r--r--src/vector.h1
13 files changed, 33 insertions, 84 deletions
diff --git a/src/blame.c b/src/blame.c
index f732338e6..f10ed409a 100644
--- a/src/blame.c
+++ b/src/blame.c
@@ -132,7 +132,6 @@ void git_blame_free(git_blame *blame)
{
size_t i;
git_blame_hunk *hunk;
- char *path;
if (!blame) return;
@@ -140,9 +139,7 @@ void git_blame_free(git_blame *blame)
free_hunk(hunk);
git_vector_free(&blame->hunks);
- git_vector_foreach(&blame->paths, i, path)
- git__free(path);
- git_vector_free(&blame->paths);
+ git_vector_free_all(&blame->paths);
git_array_clear(blame->line_index);
diff --git a/src/checkout.c b/src/checkout.c
index 4305d3e9a..e33ac2ed6 100644
--- a/src/checkout.c
+++ b/src/checkout.c
@@ -846,7 +846,7 @@ static int checkout_conflicts_coalesce_renames(
/* Juggle entries based on renames */
names = git_index_name_entrycount(data->index);
-
+
for (i = 0; i < names; i++) {
name_entry = git_index_name_get_byindex(data->index, i);
@@ -1760,9 +1760,6 @@ static int checkout_create_conflicts(checkout_data *data)
static void checkout_data_clear(checkout_data *data)
{
- checkout_conflictdata *conflict;
- size_t i;
-
if (data->opts_free_baseline) {
git_tree_free(data->opts.baseline);
data->opts.baseline = NULL;
@@ -1771,10 +1768,7 @@ static void checkout_data_clear(checkout_data *data)
git_vector_free(&data->removes);
git_pool_clear(&data->pool);
- git_vector_foreach(&data->conflicts, i, conflict)
- git__free(conflict);
-
- git_vector_free(&data->conflicts);
+ git_vector_free_all(&data->conflicts);
git__free(data->pfx);
data->pfx = NULL;
diff --git a/src/diff.c b/src/diff.c
index ad058af61..af47e86aa 100644
--- a/src/diff.c
+++ b/src/diff.c
@@ -483,14 +483,7 @@ static int diff_list_apply_options(
static void diff_list_free(git_diff *diff)
{
- git_diff_delta *delta;
- unsigned int i;
-
- git_vector_foreach(&diff->deltas, i, delta) {
- git__free(delta);
- diff->deltas.contents[i] = NULL;
- }
- git_vector_free(&diff->deltas);
+ git_vector_free_all(&diff->deltas);
git_pathspec__vfree(&diff->pathspec);
git_pool_clear(&diff->pool);
diff --git a/src/diff_tform.c b/src/diff_tform.c
index 2f94b2e77..16184910a 100644
--- a/src/diff_tform.c
+++ b/src/diff_tform.c
@@ -209,9 +209,7 @@ int git_diff_merge(git_diff *onto, const git_diff *from)
git_pool_strdup_safe(&onto->pool, onto->opts.new_prefix);
}
- git_vector_foreach(&onto_new, i, delta)
- git__free(delta);
- git_vector_free(&onto_new);
+ git_vector_free_all(&onto_new);
git_pool_clear(&onto_pool);
return error;
@@ -445,9 +443,7 @@ static int apply_splits_and_deletes(
return 0;
on_error:
- git_vector_foreach(&onto, i, delta)
- git__free(delta);
- git_vector_free(&onto);
+ git_vector_free_all(&onto);
return -1;
}
diff --git a/src/indexer.c b/src/indexer.c
index 7312809bf..d3253cb57 100644
--- a/src/indexer.c
+++ b/src/indexer.c
@@ -1005,30 +1005,20 @@ on_error:
void git_indexer_free(git_indexer *idx)
{
- khiter_t k;
- unsigned int i;
- struct entry *e;
- struct delta_info *delta;
-
if (idx == NULL)
return;
- git_vector_foreach(&idx->objects, i, e)
- git__free(e);
- git_vector_free(&idx->objects);
+ git_vector_free_all(&idx->objects);
if (idx->pack) {
- for (k = kh_begin(idx->pack->idx_cache); k != kh_end(idx->pack->idx_cache); k++) {
- if (kh_exist(idx->pack->idx_cache, k))
- git__free(kh_value(idx->pack->idx_cache, k));
- }
+ struct git_pack_entry *pentry;
+ kh_foreach_value(
+ idx->pack->idx_cache, pentry, { git__free(pentry); });
git_oidmap_free(idx->pack->idx_cache);
}
- git_vector_foreach(&idx->deltas, i, delta)
- git__free(delta);
- git_vector_free(&idx->deltas);
+ git_vector_free_all(&idx->deltas);
git_packfile_free(idx->pack);
git_filebuf_cleanup(&idx->pack_file);
git__free(idx);
diff --git a/src/iterator.c b/src/iterator.c
index c1292227c..118bbb880 100644
--- a/src/iterator.c
+++ b/src/iterator.c
@@ -920,12 +920,7 @@ static fs_iterator_frame *fs_iterator__alloc_frame(fs_iterator *fi)
static void fs_iterator__free_frame(fs_iterator_frame *ff)
{
- size_t i;
- git_path_with_stat *path;
-
- git_vector_foreach(&ff->entries, i, path)
- git__free(path);
- git_vector_free(&ff->entries);
+ git_vector_free_all(&ff->entries);
git__free(ff);
}
diff --git a/src/merge.c b/src/merge.c
index 0d89da5a0..d5bc6a39c 100644
--- a/src/merge.c
+++ b/src/merge.c
@@ -2383,11 +2383,7 @@ done:
git_index_set_caps(index_repo, index_repo_caps);
git_index_free(index_repo);
-
- git_vector_foreach(&paths, i, path)
- git__free(path);
-
- git_vector_free(&paths);
+ git_vector_free_all(&paths);
return error;
}
diff --git a/src/pathspec.c b/src/pathspec.c
index 1e7e65e90..f16e19f47 100644
--- a/src/pathspec.c
+++ b/src/pathspec.c
@@ -102,15 +102,7 @@ int git_pathspec__vinit(
/* free data from the pathspec vector */
void git_pathspec__vfree(git_vector *vspec)
{
- git_attr_fnmatch *match;
- unsigned int i;
-
- git_vector_foreach(vspec, i, match) {
- git__free(match);
- vspec->contents[i] = NULL;
- }
-
- git_vector_free(vspec);
+ git_vector_free_all(vspec);
}
struct pathspec_match_context {
diff --git a/src/push.c b/src/push.c
index e592249d9..a314922c1 100644
--- a/src/push.c
+++ b/src/push.c
@@ -541,10 +541,7 @@ static int queue_objects(git_push *push)
error = 0;
on_error:
- git_vector_foreach(&commits, i, oid)
- git__free(oid);
-
- git_vector_free(&commits);
+ git_vector_free_all(&commits);
return error;
}
diff --git a/src/remote.c b/src/remote.c
index e9d079db5..93d243001 100644
--- a/src/remote.c
+++ b/src/remote.c
@@ -1158,15 +1158,7 @@ int git_remote_list(git_strarray *remotes_list, git_repository *repo)
error = giterr_restore(&data.error);
if (error < 0) {
- size_t i;
- char *elem;
-
- git_vector_foreach(&data.list, i, elem) {
- git__free(elem);
- }
-
- git_vector_free(&data.list);
-
+ git_vector_free_all(&data.list);
return error;
}
@@ -1651,9 +1643,7 @@ static int copy_refspecs(git_strarray *array, git_remote *remote, unsigned int p
return 0;
on_error:
- git_vector_foreach(&refspecs, i, dup)
- git__free(dup);
- git_vector_free(&refspecs);
+ git_vector_free_all(&refspecs);
return -1;
}
diff --git a/src/status.c b/src/status.c
index 777b7964a..ce571a2d8 100644
--- a/src/status.c
+++ b/src/status.c
@@ -376,19 +376,13 @@ const git_status_entry *git_status_byindex(git_status_list *status, size_t i)
void git_status_list_free(git_status_list *status)
{
- git_status_entry *status_entry;
- size_t i;
-
if (status == NULL)
return;
git_diff_free(status->head2idx);
git_diff_free(status->idx2wd);
- git_vector_foreach(&status->paired, i, status_entry)
- git__free(status_entry);
-
- git_vector_free(&status->paired);
+ git_vector_free_all(&status->paired);
git__memzero(status, sizeof(*status));
git__free(status);
diff --git a/src/vector.c b/src/vector.c
index 362e7b0c0..9e217b831 100644
--- a/src/vector.c
+++ b/src/vector.c
@@ -77,6 +77,20 @@ void git_vector_free(git_vector *v)
v->_alloc_size = 0;
}
+void git_vector_free_all(git_vector *v)
+{
+ size_t i;
+
+ assert(v);
+
+ for (i = 0; i < v->length; ++i) {
+ git__free(v->contents[i]);
+ v->contents[i] = NULL;
+ }
+
+ git_vector_free(v);
+}
+
int git_vector_init(git_vector *v, size_t initial_size, git_vector_cmp cmp)
{
assert(v);
diff --git a/src/vector.h b/src/vector.h
index 279f5c6ee..c6d3e9d55 100644
--- a/src/vector.h
+++ b/src/vector.h
@@ -23,6 +23,7 @@ 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_free_all(git_vector *v); /* free each entry and self */
void git_vector_clear(git_vector *v);
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);