diff options
| author | Carlos Martín Nieto <carlos@cmartin.tk> | 2012-04-13 19:25:06 +0200 |
|---|---|---|
| committer | Carlos Martín Nieto <carlos@cmartin.tk> | 2012-04-13 22:19:45 +0200 |
| commit | 1c9c081a6a0e02ea8a148717083e3f7a769c5a2e (patch) | |
| tree | ce0404684becd4903233d8f0abd3a9a5af7c3c98 /src/indexer.c | |
| parent | 907ebe855602bcbed2bf1bb55647b4c1767614ba (diff) | |
| download | libgit2-1c9c081a6a0e02ea8a148717083e3f7a769c5a2e.tar.gz | |
indexer: add git_indexer_stream_free() and _hash()
Diffstat (limited to 'src/indexer.c')
| -rw-r--r-- | src/indexer.c | 29 |
1 files changed, 29 insertions, 0 deletions
diff --git a/src/indexer.c b/src/indexer.c index 744634205..1834d9884 100644 --- a/src/indexer.c +++ b/src/indexer.c @@ -60,6 +60,11 @@ const git_oid *git_indexer_hash(git_indexer *idx) return &idx->hash; } +const git_oid *git_indexer_stream_hash(git_indexer_stream *idx) +{ + return &idx->hash; +} + static int open_pack(struct git_pack_file **out, const char *filename) { size_t namelen; @@ -544,6 +549,30 @@ on_error: return -1; } +void git_indexer_stream_free(git_indexer_stream *idx) +{ + unsigned int i; + struct entry *e; + struct git_pack_entry *pe; + struct delta_info *delta; + + if (idx == NULL) + return; + + p_close(idx->pack->mwf.fd); + git_vector_foreach(&idx->objects, i, e) + git__free(e); + git_vector_free(&idx->objects); + git_vector_foreach(&idx->pack->cache, i, pe) + git__free(pe); + git_vector_free(&idx->pack->cache); + git_vector_foreach(&idx->deltas, i, delta) + git__free(delta); + git_vector_free(&idx->deltas); + git__free(idx->pack); + git__free(idx); +} + int git_indexer_new(git_indexer **out, const char *packname) { git_indexer *idx; |
