1
0
mirror of https://github.com/git/git.git synced 2024-11-20 06:24:00 +01:00

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>
This commit is contained in:
Shawn O. Pearce 2010-04-17 13:07:36 -07:00 committed by Junio C Hamano
parent d761b2ac0e
commit 021ab6f00b

16
http.c

@ -1002,8 +1002,9 @@ int finish_http_pack_request(struct http_pack_request *preq)
{ {
int ret; int ret;
struct packed_git **lst; 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) { if (preq->packfile != NULL) {
fclose(preq->packfile); fclose(preq->packfile);
@ -1011,18 +1012,17 @@ int finish_http_pack_request(struct http_pack_request *preq)
preq->slot->local = NULL; preq->slot->local = NULL;
} }
ret = move_temp_to_file(preq->tmpfile, preq->filename);
if (ret)
return ret;
lst = preq->lst; lst = preq->lst;
while (*lst != preq->target) while (*lst != p)
lst = &((*lst)->next); lst = &((*lst)->next);
*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; return -1;
install_packed_git(preq->target); install_packed_git(p);
return 0; return 0;
} }