diff options
author | Shawn O. Pearce <spearce@spearce.org> | 2010-04-17 13:07:36 -0700 |
---|---|---|
committer | Junio C Hamano <gitster@pobox.com> | 2010-04-17 13:55:45 -0700 |
commit | 021ab6f00b66d0d3931310e77383239a606c96c2 (patch) | |
tree | 9363b34bc4337dabe1500f92384400c250a064a2 /http.c | |
parent | d761b2ac0e42416f7fb7752d6ac6cc02c26ea14f (diff) | |
download | git-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.c | 16 |
1 files changed, 8 insertions, 8 deletions
@@ -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; } |