[PATCH 17/20] refs: add an update_ref_oid function.
- From
brian m. carlson <sandals@crustytoothpaste.net>
- Date
- Aug 28, 2016, 23:27 UTC
- Message-ID
- <20160828232757.373278-18-sandals@crustytoothpaste.net>
- In-Reply-To
- <20160828232757.373278-1-sandals@crustytoothpaste.net>
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> --- refs.c | 8 ++++++++ refs.h | 3 +++ 2 files changed, 11 insertions(+)
diff --git a/refs.c b/refs.c index b4e7cac7..f567a78e 100644 --- a/refs.c +++ b/refs.c @@ -858,6 +858,14 @@ int ref_transaction_verify(struct ref_transaction *transaction, flags, NULL, err); } +int update_ref_oid(const char *msg, const char *refname, + const struct object_id *new_oid, const struct object_id *old_oid, + unsigned int flags, enum action_on_err onerr) +{ + return update_ref(msg, refname, new_oid ? new_oid->hash : NULL, + old_oid ? old_oid->hash : NULL, flags, onerr); +} + int update_ref(const char *msg, const char *refname, const unsigned char *new_sha1, const unsigned char *old_sha1, unsigned int flags, enum action_on_err onerr) diff --git a/refs.h b/refs.h index 1b020437..7a77f3ef 100644 --- a/refs.h +++ b/refs.h @@ -477,6 +477,9 @@ void ref_transaction_free(struct ref_transaction *transaction); int update_ref(const char *msg, const char *refname, const unsigned char *new_sha1, const unsigned char *old_sha1, unsigned int flags, enum action_on_err onerr); +int update_ref_oid(const char *msg, const char *refname, + const struct object_id *new_oid, const struct object_id *old_oid, + unsigned int flags, enum action_on_err onerr); int parse_hide_refs_config(const char *var, const char *value, const char *);