aboutsummaryrefslogtreecommitdiff
path: root/http.c
diff options
context:
space:
mode:
authorShawn O. Pearce <spearce@spearce.org>2010-04-17 13:07:36 -0700
committerJunio C Hamano <gitster@pobox.com>2010-04-17 13:55:45 -0700
commit021ab6f00b66d0d3931310e77383239a606c96c2 (patch)
tree9363b34bc4337dabe1500f92384400c250a064a2 /http.c
parentd761b2ac0e42416f7fb7752d6ac6cc02c26ea14f (diff)
downloadgit-021ab6f00b66d0d3931310e77383239a606c96c2.tar.gz
git-021ab6f00b66d0d3931310e77383239a606c96c2.tar.xz
http.c: Tiny refactoring of finish_http_pack_request
Always remove the struct packed_git from the active list, even if the rename of the temporary file fails. While we are here, simplify the code a bit by using a common local variable name ("p") to hold the relevant packed_git. Signed-off-by: Shawn O. Pearce <spearce@spearce.org> Signed-off-by: Junio C Hamano <gitster@pobox.com>
Diffstat (limited to 'http.c')
-rw-r--r--http.c16
1 files changed, 8 insertions, 8 deletions
diff --git a/http.c b/http.c
index 9526491a4..e9e226956 100644
--- a/http.c
+++ b/http.c
@@ -1002,8 +1002,9 @@ int finish_http_pack_request(struct http_pack_request *preq)
{
int ret;
struct packed_git **lst;
+ struct packed_git *p = preq->target;
- preq->target->pack_size = ftell(preq->packfile);
+ p->pack_size = ftell(preq->packfile);
if (preq->packfile != NULL) {
fclose(preq->packfile);
@@ -1011,18 +1012,17 @@ int finish_http_pack_request(struct http_pack_request *preq)
preq->slot->local = NULL;
}
- ret = move_temp_to_file(preq->tmpfile, preq->filename);
- if (ret)
- return ret;
-
lst = preq->lst;
- while (*lst != preq->target)
+ while (*lst != p)
lst = &((*lst)->next);
*lst = (*lst)->next;
- if (verify_pack(preq->target))
+ ret = move_temp_to_file(preq->tmpfile, preq->filename);
+ if (ret)
+ return ret;
+ if (verify_pack(p))
return -1;
- install_packed_git(preq->target);
+ install_packed_git(p);
return 0;
}