use alloc_ref_from_str() everywhere

Replace pairs of alloc_ref() and strcpy() with alloc_ref_from_str(),
simplifying the code.

In connect.c, also a pair of alloc_ref() and memcpy() is replaced --
the additional cost of a strlen() call should not have too much of an
impact.  Consistency and simplicity are more important.

In remote.c, the code was allocating 11 bytes more than needed for
the name part, but I couldn't see them being used for anything.

Signed-off-by: Rene Scharfe <rene.scharfe@lsrfire.ath.cx>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
René Scharfe 2008-10-18 10:41:33 +02:00 committed by Junio C Hamano
parent 8009768e89
commit b0b44bc7b2
3 changed files with 4 additions and 8 deletions

View File

@ -90,9 +90,8 @@ struct ref **get_remote_heads(int in, struct ref **list,
continue;
if (nr_match && !path_match(name, nr_match, match))
continue;
ref = alloc_ref(name_len + 1);
ref = alloc_ref_from_str(buffer + 41);
hashcpy(ref->old_sha1, old_sha1);
memcpy(ref->name, buffer + 41, name_len + 1);
*list = ref;
list = &ref->next;
}

View File

@ -878,8 +878,7 @@ static struct ref *try_explicit_object_name(const char *name)
struct ref *ref;
if (!*name) {
ref = alloc_ref(20);
strcpy(ref->name, "(delete)");
ref = alloc_ref_from_str("(delete)");
hashclr(ref->new_sha1);
return ref;
}

View File

@ -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_from_str(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_from_str(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;