int fsck_walk(struct object *obj, void *data, struct fsck_options *options) { if (!obj) return -1; switch (obj->type) { case OBJ_BLOB: return 0; case OBJ_TREE: return fsck_walk_tree((struct tree *)obj, data, options); case OBJ_COMMIT: return fsck_walk_commit((struct commit *)obj, data, options); case OBJ_TAG: return fsck_walk_tag((struct tag *)obj, data, options); default: error("Unknown object type for %s", oid_to_hex(&obj->oid)); return -1; } }
int fsck_walk(struct object *obj, fsck_walk_func walk, void *data) { if (!obj) return -1; switch (obj->type) { case OBJ_BLOB: return 0; case OBJ_TREE: return fsck_walk_tree((struct tree *)obj, walk, data); case OBJ_COMMIT: return fsck_walk_commit((struct commit *)obj, walk, data); case OBJ_TAG: return fsck_walk_tag((struct tag *)obj, walk, data); default: error("Unknown object type for %s", sha1_to_hex(obj->sha1)); return -1; } }
int fsck_walk(struct object *obj, void *data, struct fsck_options *options) { if (!obj) return -1; if (obj->type == OBJ_NONE) parse_object(&obj->oid); switch (obj->type) { case OBJ_BLOB: return 0; case OBJ_TREE: return fsck_walk_tree((struct tree *)obj, data, options); case OBJ_COMMIT: return fsck_walk_commit((struct commit *)obj, data, options); case OBJ_TAG: return fsck_walk_tag((struct tag *)obj, data, options); default: error("Unknown object type for %s", describe_object(options, obj)); return -1; } }