streaming: convert open_istream to use struct object_id
authorbrian m. carlson <sandals@crustytoothpaste.net>
Mon, 12 Mar 2018 02:27:40 +0000 (02:27 +0000)
committerJunio C Hamano <gitster@pobox.com>
Wed, 14 Mar 2018 16:23:49 +0000 (09:23 -0700)
Signed-off-by: brian m. carlson <sandals@crustytoothpaste.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
archive-tar.c
archive-zip.c
builtin/index-pack.c
builtin/pack-objects.c
sha1_file.c
streaming.c
streaming.h
index fd622eacc0d9a8a80dcb9fe509fd5b405e208f1a..7a0d31d847904e1314769302af3bd61c4c330e3e 100644 (file)
@@ -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 (;;) {
index 5841a6ceb61f7ff43e8a3d1e04475785c7a42239..18b951b732ef4921b2913e8d614a5c00225e8d2c 100644 (file)
@@ -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));
index b28ebfadd433727a4d8344ecd56e458f3abc03a7..ae11d2a610fdbcf14146c2311c1cf6292a0cfa0b 100644 (file)
@@ -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)
index a197926eaa697b45d4583cd4bea71f4a3059960e..8307cc9b04f39686d86a799b820f17b2650417fa 100644 (file)
@@ -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,
index e4cb840661f799abb7a37e61bca269ee2443ba5c..cdcba4483b136cb7904c9a566affec00b181b741 100644 (file)
@@ -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;
 
index 5892b50bd89c3c66bdb541ca0100f0671834a542..be85507922cf98996c62ab48d282ee6853d9d916 100644 (file)
@@ -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);
index 73c1d156b352898c9b5661a3e480f579b80c5a00..32f46267710b4e88cd0fc90e1a5a6f6388361c61 100644 (file)
@@ -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);