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>
brian m. carlson committed
Sep 5, 2016 at 20:08 UTC
8f6dc7e32eee2944d1490ff9bf12ec329f3b33c2
2 files changed
+11
refs.c
+8
@@ -858,6 +858,14 @@ int ref_transaction_verify(struct ref_transaction *transaction,
858
flags, NULL, err);
859
}
860
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
+
869
int update_ref(const char *msg, const char *refname,
870
const unsigned char *new_sha1, const unsigned char *old_sha1,
871
unsigned int flags, enum action_on_err onerr)
refs.h
+3
@@ -477,6 +477,9 @@ void ref_transaction_free(struct ref_transaction *transaction);
477
int update_ref(const char *msg, const char *refname,
478
const unsigned char *new_sha1, const unsigned char *old_sha1,
479
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);
483
484
int parse_hide_refs_config(const char *var, const char *value, const char *);
485