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

[PATCH 16/20] sha1_name: convert get_sha1_mb to struct object_id

From
brian m. carlson <sandals@crustytoothpaste.net>
Date
Aug 28, 2016, 23:27 UTC
Message-ID
<20160828232757.373278-17-sandals@crustytoothpaste.net>
In-Reply-To
<20160828232757.373278-1-sandals@crustytoothpaste.net>

All of the callers of this function use struct object_id, so rename it to get_oid_mb and make it take struct object_id instead of unsigned char *.

Signed-off-by: brian m. carlson <sandals@crustytoothpaste.net>
---
 builtin/checkout.c |  2 +-
 cache.h            |  2 +-
 sha1_name.c        | 18 +++++++++---------
 3 files changed, 11 insertions(+), 11 deletions(-)
diff --git a/builtin/checkout.c b/builtin/checkout.c
index 13169221..8013a1b8 100644
--- a/builtin/checkout.c
+++ b/builtin/checkout.c
@@ -973,7 +973,7 @@ static int parse_branchname_arg(int argc, const char **argv,
 	if (!strcmp(arg, "-"))
 		arg = "@{-1}";
 
-	if (get_sha1_mb(arg, rev->hash)) {
+	if (get_oid_mb(arg, rev)) {
 		/*
 		 * Either case (3) or (4), with <something> not being
 		 * a commit, or an attempt to use case (1) with an
diff --git a/cache.h b/cache.h
index a679484e..e40165d1 100644
--- a/cache.h
+++ b/cache.h
@@ -1204,7 +1204,7 @@ extern char *sha1_to_hex(const unsigned char *sha1);	/* static buffer result! */
 extern char *oid_to_hex(const struct object_id *oid);	/* same static buffer as sha1_to_hex */
 
 extern int interpret_branch_name(const char *str, int len, struct strbuf *);
-extern int get_sha1_mb(const char *str, unsigned char *sha1);
+extern int get_oid_mb(const char *str, struct object_id *oid);
 
 extern int validate_headref(const char *ref);
 
diff --git a/sha1_name.c b/sha1_name.c
index e4404391..faf873cf 100644
--- a/sha1_name.c
+++ b/sha1_name.c
@@ -995,35 +995,35 @@ static int interpret_nth_prior_checkout(const char *name, int namelen,
 	return retval;
 }
 
-int get_sha1_mb(const char *name, unsigned char *sha1)
+int get_oid_mb(const char *name, struct object_id *oid)
 {
 	struct commit *one, *two;
 	struct commit_list *mbs;
-	unsigned char sha1_tmp[20];
+	struct object_id oid_tmp;
 	const char *dots;
 	int st;
 
 	dots = strstr(name, "...");
 	if (!dots)
-		return get_sha1(name, sha1);
+		return get_oid(name, oid);
 	if (dots == name)
-		st = get_sha1("HEAD", sha1_tmp);
+		st = get_oid("HEAD", &oid_tmp);
 	else {
 		struct strbuf sb;
 		strbuf_init(&sb, dots - name);
 		strbuf_add(&sb, name, dots - name);
-		st = get_sha1_committish(sb.buf, sha1_tmp);
+		st = get_sha1_committish(sb.buf, oid_tmp.hash);
 		strbuf_release(&sb);
 	}
 	if (st)
 		return st;
-	one = lookup_commit_reference_gently(sha1_tmp, 0);
+	one = lookup_commit_reference_gently(oid_tmp.hash, 0);
 	if (!one)
 		return -1;
 
-	if (get_sha1_committish(dots[3] ? (dots + 3) : "HEAD", sha1_tmp))
+	if (get_sha1_committish(dots[3] ? (dots + 3) : "HEAD", oid_tmp.hash))
 		return -1;
-	two = lookup_commit_reference_gently(sha1_tmp, 0);
+	two = lookup_commit_reference_gently(oid_tmp.hash, 0);
 	if (!two)
 		return -1;
 	mbs = get_merge_bases(one, two);
@@ -1031,7 +1031,7 @@ int get_sha1_mb(const char *name, unsigned char *sha1)
 		st = -1;
 	else {
 		st = 0;
-		hashcpy(sha1, mbs->item->object.oid.hash);
+		oidcpy(oid, &mbs->item->object.oid);
 	}
 	free_commit_list(mbs);
 	return st;
Previous: brian m. carlsonNext: brian m. carlson
Message 15 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.