summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLibravatar Jeff King <peff@peff.net>2019-10-18 00:59:54 -0400
committerLibravatar Junio C Hamano <gitster@pobox.com>2019-10-28 14:05:18 +0900
commitb8b00f1693c149ba03e34d56d8804256e74f6eab (patch)
tree39a434976e6ee23fdcc486742127270792b1a96a
parentfsck: accept an oid instead of a "struct blob" for fsck_blob() (diff)
downloadtgif-b8b00f1693c149ba03e34d56d8804256e74f6eab.tar.xz
fsck: drop blob struct from fsck_finish()
Since fsck_blob() no longer requires us to have a "struct blob", we don't need to create one. Which also means we don't need to worry about handling the case that lookup_blob() returns NULL (we'll still catch wrongly-identified blobs when we read the actual object contents and type from disk). Signed-off-by: Jeff King <peff@peff.net> Signed-off-by: Junio C Hamano <gitster@pobox.com>
-rw-r--r--fsck.c18
1 files changed, 4 insertions, 14 deletions
diff --git a/fsck.c b/fsck.c
index 6e9640a1a6..4ff0ceb4ac 100644
--- a/fsck.c
+++ b/fsck.c
@@ -1013,7 +1013,6 @@ int fsck_finish(struct fsck_options *options)
oidset_iter_init(&gitmodules_found, &iter);
while ((oid = oidset_iter_next(&iter))) {
- struct blob *blob;
enum object_type type;
unsigned long size;
char *buf;
@@ -1021,31 +1020,22 @@ int fsck_finish(struct fsck_options *options)
if (oidset_contains(&gitmodules_done, oid))
continue;
- blob = lookup_blob(the_repository, oid);
- if (!blob) {
- struct object *obj = lookup_unknown_object(oid);
- ret |= report(options, &obj->oid, obj->type,
- FSCK_MSG_GITMODULES_BLOB,
- "non-blob found at .gitmodules");
- continue;
- }
-
buf = read_object_file(oid, &type, &size);
if (!buf) {
- if (is_promisor_object(&blob->object.oid))
+ if (is_promisor_object(oid))
continue;
ret |= report(options,
- &blob->object.oid, blob->object.type,
+ oid, OBJ_BLOB,
FSCK_MSG_GITMODULES_MISSING,
"unable to read .gitmodules blob");
continue;
}
if (type == OBJ_BLOB)
- ret |= fsck_blob(&blob->object.oid, buf, size, options);
+ ret |= fsck_blob(oid, buf, size, options);
else
ret |= report(options,
- &blob->object.oid, blob->object.type,
+ oid, type,
FSCK_MSG_GITMODULES_BLOB,
"non-blob found at .gitmodules");
free(buf);