From 7eda0e4fbbc243d4103cced29357bb08af36a139 Mon Sep 17 00:00:00 2001 From: "brian m. carlson" Date: Mon, 5 Sep 2016 20:07:59 +0000 Subject: streaming: make stream_blob_to_fd take struct object_id 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 Signed-off-by: Junio C Hamano diff --git a/builtin/cat-file.c b/builtin/cat-file.c index 7b2e053..49b8fa8 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 f604adf..055dfdc 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 48b9db5..0b427b6 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 ce80d29..c6eea24 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 811fcc2..3c48f04 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 1d05c2a..73c1d15 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 */ -- cgit v0.10.2-6-g49f6