Convert peel_ref (and its corresponding backend) to struct object_id. This transformation was done with an update to the declaration, definition, and test helper and the following semantic patch: @@ expression E1, E2; @@ - peel_ref(E1, E2.hash) + peel_ref(E1, &E2) @@ expression E1, E2; @@ - peel_ref(E1, E2->hash) + peel_ref(E1, E2) Signed-off-by: brian m. carlson <sandals@xxxxxxxxxxxxxxxxxxxx> --- builtin/describe.c | 2 +- builtin/pack-objects.c | 4 ++-- builtin/show-ref.c | 2 +- refs.c | 8 ++++---- refs.h | 4 ++-- refs/files-backend.c | 8 ++++---- refs/packed-backend.c | 4 ++-- refs/refs-internal.h | 2 +- t/helper/test-ref-store.c | 6 +++--- upload-pack.c | 2 +- 10 files changed, 21 insertions(+), 21 deletions(-) diff --git a/builtin/describe.c b/builtin/describe.c index 29075dbd0f..352f8821fd 100644 --- a/builtin/describe.c +++ b/builtin/describe.c @@ -181,7 +181,7 @@ static int get_name(const char *path, const struct object_id *oid, int flag, voi } /* Is it annotated? */ - if (!peel_ref(path, peeled.hash)) { + if (!peel_ref(path, &peeled)) { is_annotated = !!oidcmp(oid, &peeled); } else { oidcpy(&peeled, oid); diff --git a/builtin/pack-objects.c b/builtin/pack-objects.c index 3f61512242..dbfb2e111d 100644 --- a/builtin/pack-objects.c +++ b/builtin/pack-objects.c @@ -562,7 +562,7 @@ static int mark_tagged(const char *path, const struct object_id *oid, int flag, if (entry) entry->tagged = 1; - if (!peel_ref(path, peeled.hash)) { + if (!peel_ref(path, &peeled)) { entry = packlist_find(&to_pack, peeled.hash, NULL); if (entry) entry->tagged = 1; @@ -2371,7 +2371,7 @@ static int add_ref_tag(const char *path, const struct object_id *oid, int flag, struct object_id peeled; if (starts_with(path, "refs/tags/") && /* is a tag? */ - !peel_ref(path, peeled.hash) && /* peelable? */ + !peel_ref(path, &peeled) && /* peelable? */ packlist_find(&to_pack, peeled.hash, NULL)) /* object packed? */ add_tag_chain(oid); return 0; diff --git a/builtin/show-ref.c b/builtin/show-ref.c index cbb8cfc7d2..41e5e71cad 100644 --- a/builtin/show-ref.c +++ b/builtin/show-ref.c @@ -38,7 +38,7 @@ static void show_one(const char *refname, const struct object_id *oid) if (!deref_tags) return; - if (!peel_ref(refname, peeled.hash)) { + if (!peel_ref(refname, &peeled)) { hex = find_unique_abbrev(peeled.hash, abbrev); printf("%s %s^{}\n", hex, refname); } diff --git a/refs.c b/refs.c index 40f07296e9..0a3754f6da 100644 --- a/refs.c +++ b/refs.c @@ -1675,14 +1675,14 @@ int refs_pack_refs(struct ref_store *refs, unsigned int flags) } int refs_peel_ref(struct ref_store *refs, const char *refname, - unsigned char *sha1) + struct object_id *oid) { - return refs->be->peel_ref(refs, refname, sha1); + return refs->be->peel_ref(refs, refname, oid); } -int peel_ref(const char *refname, unsigned char *sha1) +int peel_ref(const char *refname, struct object_id *oid) { - return refs_peel_ref(get_main_ref_store(), refname, sha1); + return refs_peel_ref(get_main_ref_store(), refname, oid); } int refs_create_symref(struct ref_store *refs, diff --git a/refs.h b/refs.h index 8159b7b067..832ade2b13 100644 --- a/refs.h +++ b/refs.h @@ -120,8 +120,8 @@ extern int refs_init_db(struct strbuf *err); * ultimately resolve to a peelable tag. */ int refs_peel_ref(struct ref_store *refs, const char *refname, - unsigned char *sha1); -int peel_ref(const char *refname, unsigned char *sha1); + struct object_id *oid); +int peel_ref(const char *refname, struct object_id *oid); /** * Resolve refname in the nested "gitlink" repository in the specified diff --git a/refs/files-backend.c b/refs/files-backend.c index 148b98490f..a7e4b9e1e9 100644 --- a/refs/files-backend.c +++ b/refs/files-backend.c @@ -642,7 +642,7 @@ static int lock_raw_ref(struct files_ref_store *refs, } static int files_peel_ref(struct ref_store *ref_store, - const char *refname, unsigned char *sha1) + const char *refname, struct object_id *oid) { struct files_ref_store *refs = files_downcast(ref_store, REF_STORE_READ | REF_STORE_ODB, @@ -655,7 +655,7 @@ static int files_peel_ref(struct ref_store *ref_store, if (ref_iterator_peel(current_ref_iter, &peeled)) return -1; - hashcpy(sha1, peeled.hash); + oidcpy(oid, &peeled); return 0; } @@ -672,10 +672,10 @@ static int files_peel_ref(struct ref_store *ref_store, * have REF_KNOWS_PEELED. */ if (flag & REF_ISPACKED && - !refs_peel_ref(refs->packed_ref_store, refname, sha1)) + !refs_peel_ref(refs->packed_ref_store, refname, oid)) return 0; - return peel_object(base.hash, sha1); + return peel_object(base.hash, oid->hash); } struct files_ref_iterator { diff --git a/refs/packed-backend.c b/refs/packed-backend.c index 3bc47ffd5e..d4bb4ba357 100644 --- a/refs/packed-backend.c +++ b/refs/packed-backend.c @@ -341,7 +341,7 @@ static int packed_read_raw_ref(struct ref_store *ref_store, } static int packed_peel_ref(struct ref_store *ref_store, - const char *refname, unsigned char *sha1) + const char *refname, struct object_id *oid) { struct packed_ref_store *refs = packed_downcast(ref_store, REF_STORE_READ | REF_STORE_ODB, @@ -351,7 +351,7 @@ static int packed_peel_ref(struct ref_store *ref_store, if (!r || peel_entry(r, 0)) return -1; - hashcpy(sha1, r->u.value.peeled.hash); + oidcpy(oid, &r->u.value.peeled); return 0; } diff --git a/refs/refs-internal.h b/refs/refs-internal.h index 6636a13a62..f0bedbd80b 100644 --- a/refs/refs-internal.h +++ b/refs/refs-internal.h @@ -549,7 +549,7 @@ typedef int ref_transaction_commit_fn(struct ref_store *refs, typedef int pack_refs_fn(struct ref_store *ref_store, unsigned int flags); typedef int peel_ref_fn(struct ref_store *ref_store, - const char *refname, unsigned char *sha1); + const char *refname, struct object_id *oid); typedef int create_symref_fn(struct ref_store *ref_store, const char *ref_target, const char *refs_heads_master, diff --git a/t/helper/test-ref-store.c b/t/helper/test-ref-store.c index af8dba9560..cea3285ada 100644 --- a/t/helper/test-ref-store.c +++ b/t/helper/test-ref-store.c @@ -72,12 +72,12 @@ static int cmd_pack_refs(struct ref_store *refs, const char **argv) static int cmd_peel_ref(struct ref_store *refs, const char **argv) { const char *refname = notnull(*argv++, "refname"); - unsigned char sha1[20]; + struct object_id oid; int ret; - ret = refs_peel_ref(refs, refname, sha1); + ret = refs_peel_ref(refs, refname, &oid); if (!ret) - puts(sha1_to_hex(sha1)); + puts(oid_to_hex(&oid)); return ret; } diff --git a/upload-pack.c b/upload-pack.c index 030eba5a0c..6d5f3c0d39 100644 --- a/upload-pack.c +++ b/upload-pack.c @@ -955,7 +955,7 @@ static int send_ref(const char *refname, const struct object_id *oid, packet_write_fmt(1, "%s %s\n", oid_to_hex(oid), refname_nons); } capabilities = NULL; - if (!peel_ref(refname, peeled.hash)) + if (!peel_ref(refname, &peeled)) packet_write_fmt(1, "%s %s^{}\n", oid_to_hex(&peeled), refname_nons); return 0; } -- 2.14.2.920.gcf0c67979c