From ef7b5195f1ee8ceef41fb2f03a46248ad7747d69 Mon Sep 17 00:00:00 2001 From: "brian m. carlson" Date: Mon, 12 Mar 2018 02:27:40 +0000 Subject: streaming: convert open_istream to use struct object_id Signed-off-by: brian m. carlson Signed-off-by: Junio C Hamano diff --git a/archive-tar.c b/archive-tar.c index fd622ea..7a0d31d 100644 --- a/archive-tar.c +++ b/archive-tar.c @@ -119,7 +119,7 @@ static int stream_blocked(const struct object_id *oid) char buf[BLOCKSIZE]; ssize_t readlen; - st = open_istream(oid->hash, &type, &sz, NULL); + st = open_istream(oid, &type, &sz, NULL); if (!st) return error("cannot stream blob %s", oid_to_hex(oid)); for (;;) { diff --git a/archive-zip.c b/archive-zip.c index 5841a6c..18b951b 100644 --- a/archive-zip.c +++ b/archive-zip.c @@ -337,7 +337,7 @@ static int write_zip_entry(struct archiver_args *args, if (S_ISREG(mode) && type == OBJ_BLOB && !args->convert && size > big_file_threshold) { - stream = open_istream(oid->hash, &type, &size, NULL); + stream = open_istream(oid, &type, &size, NULL); if (!stream) return error("cannot stream blob %s", oid_to_hex(oid)); diff --git a/builtin/index-pack.c b/builtin/index-pack.c index b28ebfa..ae11d2a 100644 --- a/builtin/index-pack.c +++ b/builtin/index-pack.c @@ -771,7 +771,7 @@ static int check_collison(struct object_entry *entry) memset(&data, 0, sizeof(data)); data.entry = entry; - data.st = open_istream(entry->idx.oid.hash, &type, &size, NULL); + data.st = open_istream(&entry->idx.oid, &type, &size, NULL); if (!data.st) return -1; if (size != entry->size || type != entry->type) diff --git a/builtin/pack-objects.c b/builtin/pack-objects.c index a197926..8307cc9 100644 --- a/builtin/pack-objects.c +++ b/builtin/pack-objects.c @@ -267,7 +267,7 @@ static unsigned long write_no_reuse_object(struct hashfile *f, struct object_ent if (!usable_delta) { if (entry->type == OBJ_BLOB && entry->size > big_file_threshold && - (st = open_istream(entry->idx.oid.hash, &type, &size, NULL)) != NULL) + (st = open_istream(&entry->idx.oid, &type, &size, NULL)) != NULL) buf = NULL; else { buf = read_sha1_file(entry->idx.oid.hash, &type, diff --git a/sha1_file.c b/sha1_file.c index e4cb840..cdcba44 100644 --- a/sha1_file.c +++ b/sha1_file.c @@ -799,7 +799,7 @@ int check_object_signature(const struct object_id *oid, void *map, return oidcmp(oid, &real_oid) ? -1 : 0; } - st = open_istream(oid->hash, &obj_type, &size, NULL); + st = open_istream(oid, &obj_type, &size, NULL); if (!st) return -1; diff --git a/streaming.c b/streaming.c index 5892b50..be85507 100644 --- a/streaming.c +++ b/streaming.c @@ -130,14 +130,14 @@ static enum input_source istream_source(const unsigned char *sha1, } } -struct git_istream *open_istream(const unsigned char *sha1, +struct git_istream *open_istream(const struct object_id *oid, enum object_type *type, unsigned long *size, struct stream_filter *filter) { struct git_istream *st; struct object_info oi = OBJECT_INFO_INIT; - const unsigned char *real = lookup_replace_object(sha1); + const unsigned char *real = lookup_replace_object(oid->hash); enum input_source src = istream_source(real, type, &oi); if (src < 0) @@ -507,7 +507,7 @@ int stream_blob_to_fd(int fd, const struct object_id *oid, struct stream_filter ssize_t kept = 0; int result = -1; - st = open_istream(oid->hash, &type, &sz, filter); + st = open_istream(oid, &type, &sz, filter); if (!st) { if (filter) free_stream_filter(filter); diff --git a/streaming.h b/streaming.h index 73c1d15..32f4626 100644 --- a/streaming.h +++ b/streaming.h @@ -8,7 +8,7 @@ /* opaque */ struct git_istream; -extern struct git_istream *open_istream(const unsigned char *, enum object_type *, unsigned long *, struct stream_filter *); +extern struct git_istream *open_istream(const struct object_id *, enum object_type *, unsigned long *, struct stream_filter *); extern int close_istream(struct git_istream *); extern ssize_t read_istream(struct git_istream *, void *, size_t); -- cgit v0.10.2-6-g49f6