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

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

From
brian m. carlson <sandals@crustytoothpaste.net>
Date
Mar 20, 2015, 19:28 UTC
Message-ID
<1426879716-47835-14-git-send-email-sandals@crustytoothpaste.net>
In-Reply-To
<1426879716-47835-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 05616a0..91eb4f6 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 66ee402..bf03fd7 100644
--- a/builtin/reflog.c
+++ b/builtin/reflog.c
@@ -449,14 +449,14 @@ static int expire_reflog(const char *ref, const unsigned char *sha1, int unused,
 	return status;
 }
 
-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 de7ac1c..bbcb044 100644
--- a/refs.c
+++ b/refs.c
@@ -3491,7 +3491,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;
@@ -3516,11 +3516,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;
@@ -3531,7 +3531,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 89217a7..c491c44 100644
--- a/refs.h
+++ b/refs.h
@@ -249,7 +249,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 ffd3528..b491d22 100644
--- a/revision.c
+++ b/revision.c
@@ -1283,7 +1283,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.2.1.209.g41e5f3a
Previous: brian m. carlsonNext: brian m. carlson
Message 14 of 19 in “Convert parts of refs.c to struct object_id”
  1. 00/16 Convert parts of refs.c to struct object_idbrian m. carlson, Mar 20, 2015
  2. 01/16 refs: convert struct ref_entry to use struct object_idbrian m. carlson, Mar 20, 2015
  3. 02/16 refs: convert for_each_tag_ref to struct object_idbrian m. carlson, Mar 20, 2015
  4. 03/16 refs: convert remaining users of for_each_ref_in to object_idbrian m. carlson, Mar 20, 2015
  5. 04/16 refs: convert for_each_ref_in_submodule to object_idbrian m. carlson, Mar 20, 2015
  6. 05/16 refs: convert head_ref to struct object_idbrian m. carlson, Mar 20, 2015
  7. 06/16 refs: convert for_each_ref_submodule to struct object_idbrian m. carlson, Mar 20, 2015
  8. 07/16 revision: remove unused _oid helper.brian m. carlson, Mar 20, 2015
  9. 08/16 refs: convert for_each_ref to struct object_idbrian m. carlson, Mar 20, 2015
  10. 09/16 refs: convert for_each_replace_ref to struct object_idbrian m. carlson, Mar 20, 2015
  11. 10/16 refs: convert namespaced ref iteration functions to object_idbrian m. carlson, Mar 20, 2015
  12. 11/16 refs: convert for_each_rawref to struct object_id.brian m. carlson, Mar 20, 2015
  13. 12/16 refs: rename do_for_each_ref_oid to do_for_each_refbrian m. carlson, Mar 20, 2015
  14. 13/16 refs: convert for_each_reflog to struct object_idbrian m. carlson, Mar 20, 2015
  15. 14/16 refs: rename each_ref_fn_oid to each_ref_fnbrian m. carlson, Mar 20, 2015
  16. 15/16 Remove unneeded *_oid functions.brian m. carlson, Mar 20, 2015
  17. 16/16 refs: convert struct ref_lock to struct object_idbrian m. carlson, Mar 20, 2015
  18. Junio C HamanoMar 20, 2015
  19. brian m. carlsonMar 20, 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.