bundle.c: use a temporary variable for OIDs and names

In preparation for moving away from accessing the OID and name via the
"oid" and "name" slots in a subsequent commit, change the code that
accesses it to use named variables. This makes the subsequent change
smaller.

Signed-off-by: Ævar Arnfjörð Bjarmason <avarab@gmail.com>
Acked-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
Ævar Arnfjörð Bjarmason 2021-07-02 11:57:31 +02:00 committed by Junio C Hamano
parent db6bfb9fe8
commit 15e7c7dca6
2 changed files with 22 additions and 10 deletions

View File

@ -156,6 +156,9 @@ static int list_refs(struct ref_list *r, int argc, const char **argv)
int i;
for (i = 0; i < r->nr; i++) {
struct object_id *oid;
const char *name;
if (argc > 1) {
int j;
for (j = 1; j < argc; j++)
@ -164,8 +167,10 @@ static int list_refs(struct ref_list *r, int argc, const char **argv)
if (j == argc)
continue;
}
printf("%s %s\n", oid_to_hex(&r->list[i].oid),
r->list[i].name);
oid = &r->list[i].oid;
name = r->list[i].name;
printf("%s %s\n", oid_to_hex(oid), name);
}
return 0;
}
@ -194,15 +199,17 @@ int verify_bundle(struct repository *r,
repo_init_revisions(r, &revs, NULL);
for (i = 0; i < p->nr; i++) {
struct ref_list_entry *e = p->list + i;
struct object *o = parse_object(r, &e->oid);
const char *name = e->name;
struct object_id *oid = &e->oid;
struct object *o = parse_object(r, oid);
if (o) {
o->flags |= PREREQ_MARK;
add_pending_object(&revs, o, e->name);
add_pending_object(&revs, o, name);
continue;
}
if (++ret == 1)
error("%s", message);
error("%s %s", oid_to_hex(&e->oid), e->name);
error("%s %s", oid_to_hex(oid), name);
}
if (revs.pending.nr != p->nr)
return ret;
@ -219,19 +226,22 @@ int verify_bundle(struct repository *r,
for (i = 0; i < p->nr; i++) {
struct ref_list_entry *e = p->list + i;
struct object *o = parse_object(r, &e->oid);
const char *name = e->name;
struct object_id *oid = &e->oid;
struct object *o = parse_object(r, oid);
assert(o); /* otherwise we'd have returned early */
if (o->flags & SHOWN)
continue;
if (++ret == 1)
error("%s", message);
error("%s %s", oid_to_hex(&e->oid), e->name);
error("%s %s", oid_to_hex(oid), name);
}
/* Clean up objects used, as they will be reused. */
for (i = 0; i < p->nr; i++) {
struct ref_list_entry *e = p->list + i;
commit = lookup_commit_reference_gently(r, &e->oid, 1);
struct object_id *oid = &e->oid;
commit = lookup_commit_reference_gently(r, oid, 1);
if (commit)
clear_commit_marks(commit, ALL_REV_FLAGS);
}

View File

@ -148,8 +148,10 @@ static struct ref *get_refs_from_bundle(struct transport *transport,
for (i = 0; i < data->header.references.nr; i++) {
struct ref_list_entry *e = data->header.references.list + i;
struct ref *ref = alloc_ref(e->name);
oidcpy(&ref->old_oid, &e->oid);
const char *name = e->name;
struct ref *ref = alloc_ref(name);
struct object_id *oid = &e->oid;
oidcpy(&ref->old_oid, oid);
ref->next = result;
result = ref;
}