fsck: only provide oid/type in fsck_error callback

None of the callbacks actually care about having a "struct object";
they're happy with just the oid and type information. So let's give
ourselves more flexibility to avoid having a "struct object" by just
passing the broken-down fields.

Note that the callback already takes a "type" field for the fsck message
type. We'll rename that to "msg_type" (and use "object_type" for the
object type) to make the distinction explicit.

Signed-off-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
Jeff King
2019-10-18 00:58:40 -04:00
committed by Junio C Hamano
parent 82ef89b318
commit 5afc4b1dc6
3 changed files with 21 additions and 13 deletions

6
fsck.h
View File

@ -27,10 +27,12 @@ typedef int (*fsck_walk_func)(struct object *obj, int type, void *data, struct f
/* callback for fsck_object, type is FSCK_ERROR or FSCK_WARN */
typedef int (*fsck_error)(struct fsck_options *o,
struct object *obj, int type, const char *message);
const struct object_id *oid, enum object_type object_type,
int msg_type, const char *message);
int fsck_error_function(struct fsck_options *o,
struct object *obj, int type, const char *message);
const struct object_id *oid, enum object_type object_type,
int msg_type, const char *message);
struct fsck_options {
fsck_walk_func walk;