Skip to content

Commit 8f6dc7e

Browse files
bk2204gitster
authored andcommitted
refs: add an update_ref_oid function.
Several places around the codebase want to pass update_ref data from struct object_id, but update_ref may also be passed NULL pointers. Instead of checking and dereferencing in every caller, create an update_ref_oid which wraps update_ref and provides this functionality. Signed-off-by: brian m. carlson <sandals@crustytoothpaste.net> Signed-off-by: Junio C Hamano <gitster@pobox.com>
1 parent 151b291 commit 8f6dc7e

2 files changed

Lines changed: 11 additions & 0 deletions

File tree

refs.c

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -858,6 +858,14 @@ int ref_transaction_verify(struct ref_transaction *transaction,
858858
flags, NULL, err);
859859
}
860860

861+
int update_ref_oid(const char *msg, const char *refname,
862+
const struct object_id *new_oid, const struct object_id *old_oid,
863+
unsigned int flags, enum action_on_err onerr)
864+
{
865+
return update_ref(msg, refname, new_oid ? new_oid->hash : NULL,
866+
old_oid ? old_oid->hash : NULL, flags, onerr);
867+
}
868+
861869
int update_ref(const char *msg, const char *refname,
862870
const unsigned char *new_sha1, const unsigned char *old_sha1,
863871
unsigned int flags, enum action_on_err onerr)

refs.h

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -477,6 +477,9 @@ void ref_transaction_free(struct ref_transaction *transaction);
477477
int update_ref(const char *msg, const char *refname,
478478
const unsigned char *new_sha1, const unsigned char *old_sha1,
479479
unsigned int flags, enum action_on_err onerr);
480+
int update_ref_oid(const char *msg, const char *refname,
481+
const struct object_id *new_oid, const struct object_id *old_oid,
482+
unsigned int flags, enum action_on_err onerr);
480483

481484
int parse_hide_refs_config(const char *var, const char *value, const char *);
482485

0 commit comments

Comments
 (0)