mirror of
https://github.com/git/git.git
synced 2024-11-18 02:23:52 +01:00
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 <sandals@crustytoothpaste.net> Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
parent
acad70d106
commit
7eda0e4fbb
@ -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 {
|
||||
|
@ -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));
|
||||
|
@ -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);
|
||||
|
2
entry.c
2
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);
|
||||
|
||||
|
@ -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);
|
||||
|
@ -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 */
|
||||
|
Loading…
Reference in New Issue
Block a user