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

[PATCH v3 06/36] tree: convert read_tree_recursive to struct object_id

From
brian m. carlson <sandals@crustytoothpaste.net>
Date
Mar 12, 2018, 02:27 UTC
Message-ID
<20180312022756.483934-7-sandals@crustytoothpaste.net>
In-Reply-To
<20180312022756.483934-1-sandals@crustytoothpaste.net>

Convert the callback functions for read_tree_recursive to take a pointer to struct object_id.

Signed-off-by: brian m. carlson <sandals@crustytoothpaste.net>
---
 archive.c          |  8 ++++----
 builtin/checkout.c |  4 ++--
 builtin/log.c      |  2 +-
 builtin/ls-tree.c  |  8 ++++----
 merge-recursive.c  |  2 +-
 tree.c             | 14 +++++++-------
 tree.h             |  2 +-
 7 files changed, 20 insertions(+), 20 deletions(-)
diff --git a/archive.c b/archive.c
index 0b7b62af0c..e664cdb624 100644
--- a/archive.c
+++ b/archive.c
@@ -198,7 +198,7 @@ static int write_directory(struct archiver_context *c)
 	return ret ? -1 : 0;
 }
 
-static int queue_or_write_archive_entry(const unsigned char *sha1,
+static int queue_or_write_archive_entry(const struct object_id *oid,
 		struct strbuf *base, const char *filename,
 		unsigned mode, int stage, void *context)
 {
@@ -224,14 +224,14 @@ static int queue_or_write_archive_entry(const unsigned char *sha1,
 
 		if (check_attr_export_ignore(check))
 			return 0;
-		queue_directory(sha1, base, filename,
+		queue_directory(oid->hash, base, filename,
 				mode, stage, c);
 		return READ_TREE_RECURSIVE;
 	}
 
 	if (write_directory(c))
 		return -1;
-	return write_archive_entry(sha1, base->buf, base->len, filename, mode,
+	return write_archive_entry(oid->hash, base->buf, base->len, filename, mode,
 				   stage, context);
 }
 
@@ -303,7 +303,7 @@ static const struct archiver *lookup_archiver(const char *name)
 	return NULL;
 }
 
-static int reject_entry(const unsigned char *sha1, struct strbuf *base,
+static int reject_entry(const struct object_id *oid, struct strbuf *base,
 			const char *filename, unsigned mode,
 			int stage, void *context)
 {
diff --git a/builtin/checkout.c b/builtin/checkout.c
index 8f4dfb1046..8eb118201d 100644
--- a/builtin/checkout.c
+++ b/builtin/checkout.c
@@ -66,7 +66,7 @@ static int post_checkout_hook(struct commit *old_commit, struct commit *new_comm
 
 }
 
-static int update_some(const unsigned char *sha1, struct strbuf *base,
+static int update_some(const struct object_id *oid, struct strbuf *base,
 		const char *pathname, unsigned mode, int stage, void *context)
 {
 	int len;
@@ -78,7 +78,7 @@ static int update_some(const unsigned char *sha1, struct strbuf *base,
 
 	len = base->len + strlen(pathname);
 	ce = xcalloc(1, cache_entry_size(len));
-	hashcpy(ce->oid.hash, sha1);
+	oidcpy(&ce->oid, oid);
 	memcpy(ce->name, base->buf, base->len);
 	memcpy(ce->name + base->len, pathname, len - base->len);
 	ce->ce_flags = create_ce_flags(0) | CE_UPDATE;
diff --git a/builtin/log.c b/builtin/log.c
index 94ee177d56..32a744bfd2 100644
--- a/builtin/log.c
+++ b/builtin/log.c
@@ -541,7 +541,7 @@ static int show_tag_object(const struct object_id *oid, struct rev_info *rev)
 	return 0;
 }
 
-static int show_tree_object(const unsigned char *sha1,
+static int show_tree_object(const struct object_id *oid,
 		struct strbuf *base,
 		const char *pathname, unsigned mode, int stage, void *context)
 {
diff --git a/builtin/ls-tree.c b/builtin/ls-tree.c
index ef965408e8..c613dd7b82 100644
--- a/builtin/ls-tree.c
+++ b/builtin/ls-tree.c
@@ -60,7 +60,7 @@ static int show_recursive(const char *base, int baselen, const char *pathname)
 	return 0;
 }
 
-static int show_tree(const unsigned char *sha1, struct strbuf *base,
+static int show_tree(const struct object_id *oid, struct strbuf *base,
 		const char *pathname, unsigned mode, int stage, void *context)
 {
 	int retval = 0;
@@ -94,7 +94,7 @@ static int show_tree(const unsigned char *sha1, struct strbuf *base,
 			char size_text[24];
 			if (!strcmp(type, blob_type)) {
 				unsigned long size;
-				if (sha1_object_info(sha1, &size) == OBJ_BAD)
+				if (sha1_object_info(oid->hash, &size) == OBJ_BAD)
 					xsnprintf(size_text, sizeof(size_text),
 						  "BAD");
 				else
@@ -103,11 +103,11 @@ static int show_tree(const unsigned char *sha1, struct strbuf *base,
 			} else
 				xsnprintf(size_text, sizeof(size_text), "-");
 			printf("%06o %s %s %7s\t", mode, type,
-			       find_unique_abbrev(sha1, abbrev),
+			       find_unique_abbrev(oid->hash, abbrev),
 			       size_text);
 		} else
 			printf("%06o %s %s\t", mode, type,
-			       find_unique_abbrev(sha1, abbrev));
+			       find_unique_abbrev(oid->hash, abbrev));
 	}
 	baselen = base->len;
 	strbuf_addstr(base, pathname);
diff --git a/merge-recursive.c b/merge-recursive.c
index 6ff971f9a2..c886f2e9cd 100644
--- a/merge-recursive.c
+++ b/merge-recursive.c
@@ -335,7 +335,7 @@ struct tree *write_tree_from_memory(struct merge_options *o)
 	return result;
 }
 
-static int save_files_dirs(const unsigned char *sha1,
+static int save_files_dirs(const struct object_id *oid,
 		struct strbuf *base, const char *path,
 		unsigned int mode, int stage, void *context)
 {
diff --git a/tree.c b/tree.c
index b224115e0f..1a0f03f520 100644
--- a/tree.c
+++ b/tree.c
@@ -10,7 +10,7 @@
 const char *tree_type = "tree";
 
 static int read_one_entry_opt(struct index_state *istate,
-			      const unsigned char *sha1,
+			      const struct object_id *oid,
 			      const char *base, int baselen,
 			      const char *pathname,
 			      unsigned mode, int stage, int opt)
@@ -31,16 +31,16 @@ static int read_one_entry_opt(struct index_state *istate,
 	ce->ce_namelen = baselen + len;
 	memcpy(ce->name, base, baselen);
 	memcpy(ce->name + baselen, pathname, len+1);
-	hashcpy(ce->oid.hash, sha1);
+	oidcpy(&ce->oid, oid);
 	return add_index_entry(istate, ce, opt);
 }
 
-static int read_one_entry(const unsigned char *sha1, struct strbuf *base,
+static int read_one_entry(const struct object_id *oid, struct strbuf *base,
 			  const char *pathname, unsigned mode, int stage,
 			  void *context)
 {
 	struct index_state *istate = context;
-	return read_one_entry_opt(istate, sha1, base->buf, base->len, pathname,
+	return read_one_entry_opt(istate, oid, base->buf, base->len, pathname,
 				  mode, stage,
 				  ADD_CACHE_OK_TO_ADD|ADD_CACHE_SKIP_DFCHECK);
 }
@@ -49,12 +49,12 @@ static int read_one_entry(const unsigned char *sha1, struct strbuf *base,
  * This is used when the caller knows there is no existing entries at
  * the stage that will conflict with the entry being added.
  */
-static int read_one_entry_quick(const unsigned char *sha1, struct strbuf *base,
+static int read_one_entry_quick(const struct object_id *oid, struct strbuf *base,
 				const char *pathname, unsigned mode, int stage,
 				void *context)
 {
 	struct index_state *istate = context;
-	return read_one_entry_opt(istate, sha1, base->buf, base->len, pathname,
+	return read_one_entry_opt(istate, oid, base->buf, base->len, pathname,
 				  mode, stage,
 				  ADD_CACHE_JUST_APPEND);
 }
@@ -83,7 +83,7 @@ static int read_tree_1(struct tree *tree, struct strbuf *base,
 				continue;
 		}
 
-		switch (fn(entry.oid->hash, base,
+		switch (fn(entry.oid, base,
 			   entry.path, entry.mode, stage, context)) {
 		case 0:
 			continue;
diff --git a/tree.h b/tree.h
index 744e6dc2ac..e2a80be4ef 100644
--- a/tree.h
+++ b/tree.h
@@ -27,7 +27,7 @@ void free_tree_buffer(struct tree *tree);
 struct tree *parse_tree_indirect(const struct object_id *oid);
 
 #define READ_TREE_RECURSIVE 1
-typedef int (*read_tree_fn_t)(const unsigned char *, struct strbuf *, const char *, unsigned int, int, void *);
+typedef int (*read_tree_fn_t)(const struct object_id *, struct strbuf *, const char *, unsigned int, int, void *);
 
 extern int read_tree_recursive(struct tree *tree,
 			       const char *base, int baselen,
Previous: brian m. carlsonNext: brian m. carlson
Message 5 of 42 in “object_id part 12”
  1. 00/36 object_id part 12brian m. carlson, Mar 12, 2018
  2. 01/36 bulk-checkin: convert index_bulk_checkin to struct object_idbrian m. carlson, Mar 12, 2018
  3. 03/36 cache-tree: convert write_*_as_tree to object_idbrian m. carlson, Mar 12, 2018
  4. 04/36 cache-tree: convert remnants to struct object_idbrian m. carlson, Mar 12, 2018
  5. 06/36 tree: convert read_tree_recursive to struct object_idbrian m. carlson, Mar 12, 2018
  6. 08/36 strbuf: convert strbuf_add_unique_abbrev to use struct object_idbrian m. carlson, Mar 12, 2018
  7. 07/36 ref-filter: convert grab_objectname to struct object_idbrian m. carlson, Mar 12, 2018
  8. 13/36 replace_object: convert struct replace_object to object_idbrian m. carlson, Mar 12, 2018
  9. 16/36 archive: convert sha1_file_to_archive to struct object_idbrian m. carlson, Mar 12, 2018
  10. 20/36 streaming: convert open_istream to use struct object_idbrian m. carlson, Mar 12, 2018
  11. 22/36 sha1_file: convert assert_sha1_type to object_idbrian m. carlson, Mar 12, 2018
  12. 23/36 sha1_file: convert retry_bad_packed_offset to struct object_idbrian m. carlson, Mar 12, 2018
  13. 25/36 Convert remaining callers of sha1_object_info_extended to object_idbrian m. carlson, Mar 12, 2018
  14. 27/36 builtin/fmt-merge-msg: convert remaining code to object_idbrian m. carlson, Mar 12, 2018
  15. 30/36 streaming: convert istream internals to struct object_idbrian m. carlson, Mar 12, 2018
  16. 26/36 sha1_file: convert sha1_object_info* to object_idbrian m. carlson, Mar 12, 2018
  17. 28/36 builtin/notes: convert static functions to object_idbrian m. carlson, Mar 12, 2018
  18. 34/36 Convert lookup_replace_object to struct object_idbrian m. carlson, Mar 12, 2018
  19. 33/36 sha1_file: convert read_sha1_file to struct object_idbrian m. carlson, Mar 12, 2018
  20. 36/36 convert: convert to struct object_idbrian m. carlson, Mar 12, 2018
  21. 29/36 tree-walk: convert get_tree_entry_follow_symlinks internals to object_idbrian m. carlson, Mar 12, 2018
  22. 32/36 sha1_file: convert read_object_with_reference to object_idbrian m. carlson, Mar 12, 2018
  23. 35/36 sha1_file: introduce a constant for max header lengthbrian m. carlson, Mar 12, 2018
  24. 24/36 packfile: convert unpack_entry to struct object_idbrian m. carlson, Mar 12, 2018
  25. 31/36 tree-walk: convert tree entry functions to object_idbrian m. carlson, Mar 12, 2018
  26. 19/36 sha1_file: convert check_sha1_signature to struct object_idbrian m. carlson, Mar 12, 2018
  27. 21/36 builtin/mktree: convert to struct object_idbrian m. carlson, Mar 12, 2018
  28. 14/36 builtin/mktag: convert to struct object_idbrian m. carlson, Mar 12, 2018
  29. 18/36 sha1_file: convert read_loose_object to use struct object_idbrian m. carlson, Mar 12, 2018
  30. 12/36 send-pack: convert remaining functions to struct object_idbrian m. carlson, Mar 12, 2018
  31. 15/36 archive: convert write_archive_entry_fn_t to object_idbrian m. carlson, Mar 12, 2018
  32. 17/36 builtin/index-pack: convert struct ref_delta_entry to object_idbrian m. carlson, Mar 12, 2018
  33. 09/36 wt-status: convert struct wt_status_state to object_idbrian m. carlson, Mar 12, 2018
  34. 11/36 http-walker: convert struct object_request to use struct object_idbrian m. carlson, Mar 12, 2018
  35. 05/36 resolve-undo: convert struct resolve_undo_info to object_idbrian m. carlson, Mar 12, 2018
  36. 10/36 Convert find_unique_abbrev* to struct object_idbrian m. carlson, Mar 12, 2018
  37. 02/36 builtin/write-tree: convert to struct object_idbrian m. carlson, Mar 12, 2018
  38. Junio C HamanoMar 14, 2018
  39. Junio C HamanoMar 14, 2018
  40. brian m. carlsonMar 15, 2018
  41. Junio C HamanoMar 14, 2018
  42. brian m. carlsonMar 15, 2018

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.