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 like103fb6d43b
(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>
This commit is contained in:

committed by
Junio C Hamano

parent
34959d80db
commit
35ff327e2d
8
fsck.h
8
fsck.h
@ -183,6 +183,14 @@ int fsck_walk(struct object *obj, void *data, struct fsck_options *options);
|
||||
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).
|
||||
|
Reference in New Issue
Block a user