git/list[1] front-page[2] threads[3] people[4] search[5] about
 

[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 *);
 
Previous: brian m. carlsonNext: brian m. carlson
Message 13 of 30 in “object_id part 5”
  1. 00/20 object_id part 5brian m. carlson, Aug 28, 2016
  2. 02/20 builtin/apply: convert static functions to struct object_idbrian m. carlson, Aug 28, 2016
  3. 07/20 builtin: convert textconv_object to use struct object_idbrian m. carlson, Aug 28, 2016
  4. 01/20 cache: convert struct cache_entry to use struct object_idbrian m. carlson, Aug 28, 2016
  5. Johannes SchindelinAug 29, 2016
  6. Jakub NarębskiAug 29, 2016
  7. Johannes SchindelinAug 29, 2016
  8. brian m. carlsonAug 29, 2016
  9. 18/20 builtin/am: convert to struct object_idbrian m. carlson, Aug 28, 2016
  10. Paul TanAug 29, 2016
  11. brian m. carlsonAug 29, 2016
  12. 06/20 builtin/cat-file: convert some static functions to struct object_idbrian m. carlson, Aug 28, 2016
  13. 17/20 refs: add an update_ref_oid function.brian m. carlson, Aug 28, 2016
  14. 03/20 builtin/blame: convert struct origin to use struct object_idbrian m. carlson, Aug 28, 2016
  15. 16/20 sha1_name: convert get_sha1_mb to struct object_idbrian m. carlson, Aug 28, 2016
  16. 19/20 builtin/commit-tree: convert to struct object_idbrian m. carlson, Aug 28, 2016
  17. 05/20 builtin/cat-file: convert struct expand_data to use struct object_idbrian m. carlson, Aug 28, 2016
  18. 20/20 builtin/reset: convert to use struct object_idbrian m. carlson, Aug 28, 2016
  19. Johannes SchindelinAug 31, 2016
  20. 04/20 builtin/log: convert some static functions to use struct object_idbrian m. carlson, Aug 28, 2016
  21. 13/20 builtin/rm: convert to use struct object_idbrian m. carlson, Aug 28, 2016
  22. 12/20 builtin/blame: convert file to use struct object_idbrian m. carlson, Aug 28, 2016
  23. 11/20 Convert read_mmblob to take struct object_id.brian m. carlson, Aug 28, 2016
  24. 14/20 notes: convert init_notes to use struct object_idbrian m. carlson, Aug 28, 2016
  25. 15/20 builtin/update-index: convert file to struct object_idbrian m. carlson, Aug 28, 2016
  26. 09/20 builtin/checkout: convert some static functions to struct object_idbrian m. carlson, Aug 28, 2016
  27. 08/20 streaming: make stream_blob_to_fd take struct object_idbrian m. carlson, Aug 28, 2016
  28. Johannes SchindelinAug 29, 2016
  29. 10/20 notes-merge: convert struct notes_merge_pair to struct object_idbrian m. carlson, Aug 28, 2016
  30. Johannes SchindelinAug 31, 2016

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.