diff options
author | Junio C Hamano <gitster@pobox.com> | 2008-10-21 17:58:01 -0700 |
---|---|---|
committer | Junio C Hamano <gitster@pobox.com> | 2008-10-21 17:58:01 -0700 |
commit | 6af50f7536d559f891d08597203ba605726511d6 (patch) | |
tree | 3f72c088340951d221afc6162c7ec30b96826cdc /transport.c | |
parent | d67dd17b336a1f39760324b6cc05eaee17b5f124 (diff) | |
parent | 59c69c0c656ebce2f7ce870b4913512597a98390 (diff) | |
download | git-6af50f7536d559f891d08597203ba605726511d6.tar.gz |
Merge branch 'rs/alloc-ref'
* rs/alloc-ref:
make alloc_ref_from_str() the new alloc_ref()
use alloc_ref_from_str() everywhere
add alloc_ref_with_prefix()
Diffstat (limited to 'transport.c')
-rw-r--r-- | transport.c | 10 |
1 files changed, 4 insertions, 6 deletions
diff --git a/transport.c b/transport.c index 1c510a3360..56831c57c5 100644 --- a/transport.c +++ b/transport.c @@ -75,7 +75,7 @@ static int read_loose_refs(struct strbuf *path, int name_offset, if (fd < 0) continue; - next = alloc_ref(path->len - name_offset + 1); + next = alloc_ref(path->buf + name_offset); if (read_in_full(fd, buffer, 40) != 40 || get_sha1_hex(buffer, next->old_sha1)) { close(fd); @@ -83,7 +83,6 @@ static int read_loose_refs(struct strbuf *path, int name_offset, continue; } close(fd); - strcpy(next->name, path->buf + name_offset); (*tail)->next = next; *tail = next; } @@ -127,14 +126,13 @@ static void insert_packed_refs(const char *packed_refs, struct ref **list) (*list)->next->name)) > 0) list = &(*list)->next; if (!(*list)->next || cmp < 0) { - struct ref *next = alloc_ref(len - 40); + struct ref *next = alloc_ref(buffer + 41); buffer[40] = '\0'; if (get_sha1_hex(buffer, next->old_sha1)) { warning ("invalid SHA-1: %s", buffer); free(next); continue; } - strcpy(next->name, buffer + 41); next->next = (*list)->next; (*list)->next = next; list = &(*list)->next; @@ -501,7 +499,7 @@ static struct ref *get_refs_via_curl(struct transport *transport) strbuf_release(&buffer); - ref = alloc_ref_from_str("HEAD"); + ref = alloc_ref("HEAD"); if (!walker->fetch_ref(walker, ref) && !resolve_remote_symref(ref, refs)) { ref->next = refs; @@ -542,7 +540,7 @@ static struct ref *get_refs_from_bundle(struct transport *transport) die ("Could not read bundle '%s'.", transport->url); for (i = 0; i < data->header.references.nr; i++) { struct ref_list_entry *e = data->header.references.list + i; - struct ref *ref = alloc_ref_from_str(e->name); + struct ref *ref = alloc_ref(e->name); hashcpy(ref->old_sha1, e->sha1); ref->next = result; result = ref; |