diff options
author | Jeff King <peff@peff.net> | 2023-01-18 21:43:53 +0100 |
---|---|---|
committer | Junio C Hamano <gitster@pobox.com> | 2023-01-18 21:59:44 +0100 |
commit | 35ff327e2da2e9fa9820643d2e44f3b30530d06c (patch) | |
tree | 5a6baef580c1302d380fd887828a0eb9ab06d989 /fsck.h | |
parent | t: use hash-object --literally when created malformed objects (diff) | |
download | git-35ff327e2da2e9fa9820643d2e44f3b30530d06c.tar.xz git-35ff327e2da2e9fa9820643d2e44f3b30530d06c.zip |
fsck: provide a function to fsck buffer without object struct
The fsck code has been slowly moving away from requiring an object
struct in commits like 103fb6d43b (fsck: accept an oid instead of a
"struct tag" for fsck_tag(), 2019-10-18), c5b4269b57 (fsck: accept an
oid instead of a "struct commit" for fsck_commit(), 2019-10-18), etc.
However, the only external interface that fsck.c provides is
fsck_object(), which requires an object struct, then promptly discards
everything except its oid and type. Let's factor out the post-discard
part of that function as fsck_buffer(), leaving fsck_object() as a thin
wrapper around it. That will provide more flexibility for callers which
may not have a struct.
Signed-off-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Diffstat (limited to 'fsck.h')
-rw-r--r-- | fsck.h | 8 |
1 files changed, 8 insertions, 0 deletions
@@ -184,6 +184,14 @@ int fsck_object(struct object *obj, void *data, unsigned long size, struct fsck_options *options); /* + * Same as fsck_object(), but for when the caller doesn't have an object + * struct. + */ +int fsck_buffer(const struct object_id *oid, enum object_type, + void *data, unsigned long size, + struct fsck_options *options); + +/* * fsck a tag, and pass info about it back to the caller. This is * exposed fsck_object() internals for git-mktag(1). */ |