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

[PATCH 08/20] streaming: make stream_blob_to_fd take struct object_id

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

Since all of its callers have been updated, modify stream_blob_to_fd to take a struct object_id.

Signed-off-by: brian m. carlson <sandals@crustytoothpaste.net>
---
 builtin/cat-file.c | 6 +++---
 builtin/fsck.c     | 2 +-
 builtin/log.c      | 4 ++--
 entry.c            | 2 +-
 streaming.c        | 4 ++--
 streaming.h        | 2 +-
 6 files changed, 10 insertions(+), 10 deletions(-)
diff --git a/builtin/cat-file.c b/builtin/cat-file.c
index 7b2e0537..49b8fa8e 100644
--- a/builtin/cat-file.c
+++ b/builtin/cat-file.c
@@ -83,7 +83,7 @@ static int cat_one_file(int opt, const char *exp_type, const char *obj_name,
 		}
 
 		if (type == OBJ_BLOB)
-			return stream_blob_to_fd(1, oid.hash, NULL, 0);
+			return stream_blob_to_fd(1, &oid, NULL, 0);
 		buf = read_sha1_file(oid.hash, &type, &size);
 		if (!buf)
 			die("Cannot read object %s", obj_name);
@@ -105,7 +105,7 @@ static int cat_one_file(int opt, const char *exp_type, const char *obj_name,
 				oidcpy(&blob_oid, &oid);
 
 			if (sha1_object_info(blob_oid.hash, NULL) == OBJ_BLOB)
-				return stream_blob_to_fd(1, blob_oid.hash, NULL, 0);
+				return stream_blob_to_fd(1, &blob_oid, NULL, 0);
 			/*
 			 * we attempted to dereference a tag to a blob
 			 * and failed; there may be new dereference
@@ -240,7 +240,7 @@ static void print_object_or_die(struct batch_options *opt, struct expand_data *d
 	if (data->type == OBJ_BLOB) {
 		if (opt->buffer_output)
 			fflush(stdout);
-		if (stream_blob_to_fd(1, oid->hash, NULL, 0) < 0)
+		if (stream_blob_to_fd(1, oid, NULL, 0) < 0)
 			die("unable to stream %s to stdout", oid_to_hex(oid));
 	}
 	else {
diff --git a/builtin/fsck.c b/builtin/fsck.c
index f604adff..055dfdcf 100644
--- a/builtin/fsck.c
+++ b/builtin/fsck.c
@@ -268,7 +268,7 @@ static void check_unreachable_object(struct object *obj)
 			if (!(f = fopen(filename, "w")))
 				die_errno("Could not open '%s'", filename);
 			if (obj->type == OBJ_BLOB) {
-				if (stream_blob_to_fd(fileno(f), obj->oid.hash, NULL, 1))
+				if (stream_blob_to_fd(fileno(f), &obj->oid, NULL, 1))
 					die_errno("Could not write '%s'", filename);
 			} else
 				fprintf(f, "%s\n", describe_object(obj));
diff --git a/builtin/log.c b/builtin/log.c
index 48b9db51..0b427b67 100644
--- a/builtin/log.c
+++ b/builtin/log.c
@@ -474,13 +474,13 @@ static int show_blob_object(const struct object_id *oid, struct rev_info *rev, c
 	fflush(rev->diffopt.file);
 	if (!DIFF_OPT_TOUCHED(&rev->diffopt, ALLOW_TEXTCONV) ||
 	    !DIFF_OPT_TST(&rev->diffopt, ALLOW_TEXTCONV))
-		return stream_blob_to_fd(1, oid->hash, NULL, 0);
+		return stream_blob_to_fd(1, oid, NULL, 0);
 
 	if (get_sha1_with_context(obj_name, 0, oidc.hash, &obj_context))
 		die(_("Not a valid object name %s"), obj_name);
 	if (!obj_context.path[0] ||
 	    !textconv_object(obj_context.path, obj_context.mode, &oidc, 1, &buf, &size))
-		return stream_blob_to_fd(1, oid->hash, NULL, 0);
+		return stream_blob_to_fd(1, oid, NULL, 0);
 
 	if (!buf)
 		die(_("git show %s: bad file"), obj_name);
diff --git a/entry.c b/entry.c
index ce80d292..c6eea240 100644
--- a/entry.c
+++ b/entry.c
@@ -127,7 +127,7 @@ static int streaming_write_entry(const struct cache_entry *ce, char *path,
 	if (fd < 0)
 		return -1;
 
-	result |= stream_blob_to_fd(fd, ce->oid.hash, filter, 1);
+	result |= stream_blob_to_fd(fd, &ce->oid, filter, 1);
 	*fstat_done = fstat_output(fd, state, statbuf);
 	result |= close(fd);
 
diff --git a/streaming.c b/streaming.c
index 811fcc24..3c48f049 100644
--- a/streaming.c
+++ b/streaming.c
@@ -497,7 +497,7 @@ static open_method_decl(incore)
  * Users of streaming interface
  ****************************************************************/
 
-int stream_blob_to_fd(int fd, unsigned const char *sha1, struct stream_filter *filter,
+int stream_blob_to_fd(int fd, const struct object_id *oid, struct stream_filter *filter,
 		      int can_seek)
 {
 	struct git_istream *st;
@@ -506,7 +506,7 @@ int stream_blob_to_fd(int fd, unsigned const char *sha1, struct stream_filter *f
 	ssize_t kept = 0;
 	int result = -1;
 
-	st = open_istream(sha1, &type, &sz, filter);
+	st = open_istream(oid->hash, &type, &sz, filter);
 	if (!st) {
 		if (filter)
 			free_stream_filter(filter);
diff --git a/streaming.h b/streaming.h
index 1d05c2a4..73c1d156 100644
--- a/streaming.h
+++ b/streaming.h
@@ -12,6 +12,6 @@ extern struct git_istream *open_istream(const unsigned char *, enum object_type
 extern int close_istream(struct git_istream *);
 extern ssize_t read_istream(struct git_istream *, void *, size_t);
 
-extern int stream_blob_to_fd(int fd, const unsigned char *, struct stream_filter *, int can_seek);
+extern int stream_blob_to_fd(int fd, const struct object_id *, struct stream_filter *, int can_seek);
 
 #endif /* STREAMING_H */
Previous: brian m. carlsonNext: Johannes Schindelin
Message 27 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.