diff options
author | Russell Belfer <rb@github.com> | 2013-12-06 15:04:31 -0800 |
---|---|---|
committer | Russell Belfer <rb@github.com> | 2013-12-11 10:57:49 -0800 |
commit | fcd324c625d8be3f368c924d787e945e5812d8dd (patch) | |
tree | ac1e54b2538cdc10ee17dfd7c887c35dd1f572bf /src/indexer.c | |
parent | dab89f9b6821b67dd07c8bd4dbb53e25a3e687c7 (diff) | |
download | libgit2-fcd324c625d8be3f368c924d787e945e5812d8dd.tar.gz |
Add git_vector_free_all
There are a lot of places that we call git__free on each item in
a vector and then call git_vector_free on the vector itself. This
just wraps that up into one convenient helper function.
Diffstat (limited to 'src/indexer.c')
-rw-r--r-- | src/indexer.c | 20 |
1 files changed, 5 insertions, 15 deletions
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); |