diff options
author | Jeff King <peff@peff.net> | 2023-01-18 23:43:53 +0300 |
---|---|---|
committer | Junio C Hamano <gitster@pobox.com> | 2023-01-18 23:59:44 +0300 |
commit | 35ff327e2da2e9fa9820643d2e44f3b30530d06c (patch) | |
tree | 5a6baef580c1302d380fd887828a0eb9ab06d989 /fsck.h | |
parent | 34959d80db602b7d6893c9e2dfa81d78fd16f702 (diff) |
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). */ |