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

[PATCH v2 13/16] refs: convert for_each_reflog to struct object_id

From
brian m. carlson <sandals@crustytoothpaste.net>
Date
Apr 22, 2015, 23:24 UTC
Message-ID
<1429745061-295908-14-git-send-email-sandals@crustytoothpaste.net>
In-Reply-To
<1429745061-295908-1-git-send-email-sandals@crustytoothpaste.net>
Signed-off-by: brian m. carlson <sandals@crustytoothpaste.net>
---
 builtin/fsck.c   |  2 +-
 builtin/reflog.c |  4 ++--
 refs.c           | 10 +++++-----
 refs.h           |  2 +-
 revision.c       |  2 +-
 5 files changed, 10 insertions(+), 10 deletions(-)
diff --git a/builtin/fsck.c b/builtin/fsck.c
index 85238a7..6659f81 100644
--- a/builtin/fsck.c
+++ b/builtin/fsck.c
@@ -476,7 +476,7 @@ static int fsck_handle_reflog_ent(unsigned char *osha1, unsigned char *nsha1,
 	return 0;
 }
 
-static int fsck_handle_reflog(const char *logname, const unsigned char *sha1, int flag, void *cb_data)
+static int fsck_handle_reflog(const char *logname, const struct object_id *oid, int flag, void *cb_data)
 {
 	for_each_reflog_ent(logname, fsck_handle_reflog_ent, NULL);
 	return 0;
diff --git a/builtin/reflog.c b/builtin/reflog.c
index f3f9201..da890f0 100644
--- a/builtin/reflog.c
+++ b/builtin/reflog.c
@@ -379,14 +379,14 @@ static void reflog_expiry_cleanup(void *cb_data)
 	}
 }
 
-static int collect_reflog(const char *ref, const unsigned char *sha1, int unused, void *cb_data)
+static int collect_reflog(const char *ref, const struct object_id *oid, int unused, void *cb_data)
 {
 	struct collected_reflog *e;
 	struct collect_reflog_cb *cb = cb_data;
 	size_t namelen = strlen(ref);
 
 	e = xmalloc(sizeof(*e) + namelen + 1);
-	hashcpy(e->sha1, sha1);
+	hashcpy(e->sha1, oid->hash);
 	memcpy(e->reflog, ref, namelen + 1);
 	ALLOC_GROW(cb->e, cb->nr + 1, cb->alloc);
 	cb->e[cb->nr++] = e;
diff --git a/refs.c b/refs.c
index 9f687e8..38ecc2a 100644
--- a/refs.c
+++ b/refs.c
@@ -3484,7 +3484,7 @@ int for_each_reflog_ent(const char *refname, each_reflog_ent_fn fn, void *cb_dat
  * must be empty or end with '/'.  Name will be used as a scratch
  * space, but its contents will be restored before return.
  */
-static int do_for_each_reflog(struct strbuf *name, each_ref_fn fn, void *cb_data)
+static int do_for_each_reflog(struct strbuf *name, each_ref_fn_oid fn, void *cb_data)
 {
 	DIR *d = opendir(git_path("logs/%s", name->buf));
 	int retval = 0;
@@ -3509,11 +3509,11 @@ static int do_for_each_reflog(struct strbuf *name, each_ref_fn fn, void *cb_data
 				strbuf_addch(name, '/');
 				retval = do_for_each_reflog(name, fn, cb_data);
 			} else {
-				unsigned char sha1[20];
-				if (read_ref_full(name->buf, 0, sha1, NULL))
+				struct object_id oid;
+				if (read_ref_full(name->buf, 0, oid.hash, NULL))
 					retval = error("bad ref for %s", name->buf);
 				else
-					retval = fn(name->buf, sha1, 0, cb_data);
+					retval = fn(name->buf, &oid, 0, cb_data);
 			}
 			if (retval)
 				break;
@@ -3524,7 +3524,7 @@ static int do_for_each_reflog(struct strbuf *name, each_ref_fn fn, void *cb_data
 	return retval;
 }
 
-int for_each_reflog(each_ref_fn fn, void *cb_data)
+int for_each_reflog(each_ref_fn_oid fn, void *cb_data)
 {
 	int retval;
 	struct strbuf name;
diff --git a/refs.h b/refs.h
index 6df7d8a..abdfb00 100644
--- a/refs.h
+++ b/refs.h
@@ -222,7 +222,7 @@ int for_each_reflog_ent_reverse(const char *refname, each_reflog_ent_fn fn, void
  * Calls the specified function for each reflog file until it returns nonzero,
  * and returns the value
  */
-extern int for_each_reflog(each_ref_fn, void *);
+extern int for_each_reflog(each_ref_fn_oid, void *);
 
 #define REFNAME_ALLOW_ONELEVEL 1
 #define REFNAME_REFSPEC_PATTERN 2
diff --git a/revision.c b/revision.c
index 29af759..94eb94b 100644
--- a/revision.c
+++ b/revision.c
@@ -1298,7 +1298,7 @@ static int handle_one_reflog_ent(unsigned char *osha1, unsigned char *nsha1,
 	return 0;
 }
 
-static int handle_one_reflog(const char *path, const unsigned char *sha1, int flag, void *cb_data)
+static int handle_one_reflog(const char *path, const struct object_id *oid, int flag, void *cb_data)
 {
 	struct all_refs_cb *cb = cb_data;
 	cb->warned_bad_reflog = 0;
-- 
2.3.5
Previous: brian m. carlsonNext: brian m. carlson
Message 19 of 24 in “Convert parts of refs.c to struct object_id”
  1. 00/16 Convert parts of refs.c to struct object_idbrian m. carlson, Apr 22, 2015
  2. 01/16 refs: convert struct ref_entry to use struct object_idbrian m. carlson, Apr 22, 2015
  3. Stefan BellerApr 23, 2015
  4. brian m. carlsonApr 24, 2015
  5. 02/16 refs: convert for_each_tag_ref to struct object_idbrian m. carlson, Apr 22, 2015
  6. Stefan BellerApr 23, 2015
  7. Jeff KingApr 23, 2015
  8. brian m. carlsonApr 24, 2015
  9. 03/16 refs: convert remaining users of for_each_ref_in to object_idbrian m. carlson, Apr 22, 2015
  10. 04/16 refs: convert for_each_ref_in_submodule to object_idbrian m. carlson, Apr 22, 2015
  11. 05/16 refs: convert head_ref to struct object_idbrian m. carlson, Apr 22, 2015
  12. 06/16 refs: convert for_each_ref_submodule to struct object_idbrian m. carlson, Apr 22, 2015
  13. 07/16 revision: remove unused _oid helper.brian m. carlson, Apr 22, 2015
  14. 08/16 refs: convert for_each_ref to struct object_idbrian m. carlson, Apr 22, 2015
  15. 09/16 refs: convert for_each_replace_ref to struct object_idbrian m. carlson, Apr 22, 2015
  16. 10/16 refs: convert namespaced ref iteration functions to object_idbrian m. carlson, Apr 22, 2015
  17. 11/16 refs: convert for_each_rawref to struct object_id.brian m. carlson, Apr 22, 2015
  18. 12/16 refs: rename do_for_each_ref_oid to do_for_each_refbrian m. carlson, Apr 22, 2015
  19. 13/16 refs: convert for_each_reflog to struct object_idbrian m. carlson, Apr 22, 2015
  20. 14/16 refs: rename each_ref_fn_oid to each_ref_fnbrian m. carlson, Apr 22, 2015
  21. 15/16 Remove unneeded *_oid functions.brian m. carlson, Apr 22, 2015
  22. 16/16 refs: convert struct ref_lock to struct object_idbrian m. carlson, Apr 22, 2015
  23. Michael HaggertyApr 26, 2015
  24. brian m. carlsonMay 3, 2015

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.