diff options
author | René Scharfe <l.s.r@web.de> | 2014-08-30 17:55:45 +0200 |
---|---|---|
committer | Junio C Hamano <gitster@pobox.com> | 2014-09-02 10:57:14 -0700 |
commit | 59b8263a6dc3946b62101a9cc9c603a5486cee09 (patch) | |
tree | d80345fa5b449a6322574fde6731dda2fd0d0b32 /http-walker.c | |
parent | 96db324a73fdada6fbe7b63221986f8f18cc63b0 (diff) | |
download | git-59b8263a6dc3946b62101a9cc9c603a5486cee09.tar.gz |
http-walker: simplify process_alternates_response() using strbufrs/simplify-http-walker
Use strbuf to build the new base, which takes care of allocations and
the terminating NUL character automatically.
Signed-off-by: Rene Scharfe <l.s.r@web.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Diffstat (limited to 'http-walker.c')
-rw-r--r-- | http-walker.c | 15 |
1 files changed, 6 insertions, 9 deletions
diff --git a/http-walker.c b/http-walker.c index dbddfaa177..88da5468e7 100644 --- a/http-walker.c +++ b/http-walker.c @@ -230,7 +230,6 @@ static void process_alternates_response(void *callback_data) int okay = 0; int serverlen = 0; struct alt_base *newalt; - char *target = NULL; if (data[i] == '/') { /* * This counts @@ -287,17 +286,15 @@ static void process_alternates_response(void *callback_data) } /* skip "objects\n" at end */ if (okay) { - target = xmalloc(serverlen + posn - i - 6); - memcpy(target, base, serverlen); - memcpy(target + serverlen, data + i, - posn - i - 7); - target[serverlen + posn - i - 7] = 0; + struct strbuf target = STRBUF_INIT; + strbuf_add(&target, base, serverlen); + strbuf_add(&target, data + i, posn - i - 7); if (walker->get_verbosely) - fprintf(stderr, - "Also look at %s\n", target); + fprintf(stderr, "Also look at %s\n", + target.buf); newalt = xmalloc(sizeof(*newalt)); newalt->next = NULL; - newalt->base = target; + newalt->base = strbuf_detach(&target, NULL); newalt->got_indices = 0; newalt->packs = NULL; |