Code

Fix git-diff A...B
[git.git] / fsck-objects.c
index 769bb2a6a75f34192cfd7d6f99ea8f6efbfdce7e..e167f4105ffcf50f0ebfe03378b687569b6a668e 100644 (file)
@@ -60,12 +60,13 @@ static int objwarning(struct object *obj, const char *err, ...)
 
 static void check_connectivity(void)
 {
-       int i;
+       int i, max;
 
        /* Look up all the requirements, warn about missing objects.. */
-       for (i = 0; i < obj_allocs; i++) {
+       max = get_max_object_index();
+       for (i = 0; i < max; i++) {
                const struct object_refs *refs;
-               struct object *obj = objs[i];
+               struct object *obj = get_indexed_object(i);
 
                if (!obj)
                        continue;
@@ -296,13 +297,13 @@ static int fsck_sha1(unsigned char *sha1)
        if (obj->flags & SEEN)
                return 0;
        obj->flags |= SEEN;
-       if (obj->type == TYPE_BLOB)
+       if (obj->type == OBJ_BLOB)
                return 0;
-       if (obj->type == TYPE_TREE)
+       if (obj->type == OBJ_TREE)
                return fsck_tree((struct tree *) obj);
-       if (obj->type == TYPE_COMMIT)
+       if (obj->type == OBJ_COMMIT)
                return fsck_commit((struct commit *) obj);
-       if (obj->type == TYPE_TAG)
+       if (obj->type == OBJ_TAG)
                return fsck_tag((struct tag *) obj);
        /* By now, parse_object() would've returned NULL instead. */
        return objerror(obj, "unknown type '%d' (internal fsck error)", obj->type);
@@ -471,7 +472,7 @@ static int fsck_cache_tree(struct cache_tree *it)
                }
                mark_reachable(obj, REACHABLE);
                obj->used = 1;
-               if (obj->type != TYPE_TREE)
+               if (obj->type != OBJ_TREE)
                        err |= objerror(obj, "non-tree in cache-tree");
        }
        for (i = 0; i < it->subtree_nr; i++)