summaryrefslogtreecommitdiff
path: root/src/indexer.c
diff options
context:
space:
mode:
authorCarlos Martín Nieto <carlos@cmartin.tk>2012-05-09 13:11:50 +0200
committerCarlos Martín Nieto <carlos@cmartin.tk>2012-05-09 13:11:50 +0200
commita640d79e84b4bf1d3c601f1a8ccf369427005797 (patch)
treedb47a4cb027ed09a99d03c264a12c46bcbfbf335 /src/indexer.c
parent0f49200c9a72f7d8144eb663dee2c684d52ef42a (diff)
downloadlibgit2-a640d79e84b4bf1d3c601f1a8ccf369427005797.tar.gz
indexer: close the pack's fd before renaming it
Windows gets upset if we rename a file with an open descriptor.
Diffstat (limited to 'src/indexer.c')
-rw-r--r--src/indexer.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/src/indexer.c b/src/indexer.c
index d2e492c39..0baa194d6 100644
--- a/src/indexer.c
+++ b/src/indexer.c
@@ -532,6 +532,7 @@ int git_indexer_stream_finalize(git_indexer_stream *idx, git_indexer_stats *stat
goto on_error;
git_mwindow_free_all(&idx->pack->mwf);
+ p_close(idx->pack->mwf.fd);
if (index_path_stream(&filename, idx, ".pack") < 0)
goto on_error;
@@ -544,6 +545,7 @@ int git_indexer_stream_finalize(git_indexer_stream *idx, git_indexer_stats *stat
on_error:
git_mwindow_free_all(&idx->pack->mwf);
+ p_close(idx->pack->mwf.fd);
git_filebuf_cleanup(&idx->index_file);
git_buf_free(&filename);
return -1;
@@ -559,7 +561,6 @@ void git_indexer_stream_free(git_indexer_stream *idx)
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);