submodule: try harder to fetch needed sha1 by direct fetching sha1
[gitweb.git] / tree.c
diff --git a/tree.c b/tree.c
index 0c2f2fdb3b4fbbe2135717f08958129adce95e9f..f79ff9813e37529cf7adbcda307027b0495cfb1c 100644 (file)
--- a/tree.c
+++ b/tree.c
@@ -102,7 +102,7 @@ static int read_tree_1(struct tree *tree, struct strbuf *base,
                                    sha1_to_hex(entry.sha1),
                                    base->buf, entry.path);
 
-                       hashcpy(sha1, get_object_hash(commit->tree->object));
+                       hashcpy(sha1, commit->tree->object.oid.hash);
                }
                else
                        continue;
@@ -212,15 +212,15 @@ int parse_tree_gently(struct tree *item, int quiet_on_missing)
 
        if (item->object.parsed)
                return 0;
-       buffer = read_sha1_file(get_object_hash(item->object), &type, &size);
+       buffer = read_sha1_file(item->object.oid.hash, &type, &size);
        if (!buffer)
                return quiet_on_missing ? -1 :
                        error("Could not read %s",
-                            sha1_to_hex(item->object.sha1));
+                            oid_to_hex(&item->object.oid));
        if (type != OBJ_TREE) {
                free(buffer);
                return error("Object %s not a tree",
-                            sha1_to_hex(item->object.sha1));
+                            oid_to_hex(&item->object.oid));
        }
        return parse_tree_buffer(item, buffer, size);
 }
@@ -248,6 +248,6 @@ struct tree *parse_tree_indirect(const unsigned char *sha1)
                else
                        return NULL;
                if (!obj->parsed)
-                       parse_object(obj->sha1);
+                       parse_object(obj->oid.hash);
        } while (1);
 }