Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.kernel.org/pub/scm/git/git.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--builtin/fsck.c17
-rw-r--r--fsck.c11
-rw-r--r--fsck.h6
3 files changed, 21 insertions, 13 deletions
diff --git a/builtin/fsck.c b/builtin/fsck.c
index 59c77c1baa..8d13794b14 100644
--- a/builtin/fsck.c
+++ b/builtin/fsck.c
@@ -104,23 +104,26 @@ static int objerror(struct object *obj, const char *err)
}
static int fsck_error_func(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)
{
- switch (type) {
+ switch (msg_type) {
case FSCK_WARN:
/* TRANSLATORS: e.g. warning in tree 01bfda: <more explanation> */
fprintf_ln(stderr, _("warning in %s %s: %s"),
- printable_type(&obj->oid, obj->type),
- describe_object(&obj->oid), message);
+ printable_type(oid, object_type),
+ describe_object(oid), message);
return 0;
case FSCK_ERROR:
/* TRANSLATORS: e.g. error in tree 01bfda: <more explanation> */
fprintf_ln(stderr, _("error in %s %s: %s"),
- printable_type(&obj->oid, obj->type),
- describe_object(&obj->oid), message);
+ printable_type(oid, object_type),
+ describe_object(oid), message);
return 1;
default:
- BUG("%d (FSCK_IGNORE?) should never trigger this callback", type);
+ BUG("%d (FSCK_IGNORE?) should never trigger this callback",
+ msg_type);
}
}
diff --git a/fsck.c b/fsck.c
index 124c0184d4..c036ba09ab 100644
--- a/fsck.c
+++ b/fsck.c
@@ -305,7 +305,8 @@ static int report(struct fsck_options *options, struct object *object,
va_start(ap, fmt);
strbuf_vaddf(&sb, fmt, ap);
- result = options->error_func(options, object, msg_type, sb.buf);
+ result = options->error_func(options, &object->oid, object->type,
+ msg_type, sb.buf);
strbuf_release(&sb);
va_end(ap);
@@ -983,13 +984,15 @@ int fsck_object(struct object *obj, void *data, unsigned long size,
}
int fsck_error_function(struct fsck_options *o,
- struct object *obj, int msg_type, const char *message)
+ const struct object_id *oid,
+ enum object_type object_type,
+ int msg_type, const char *message)
{
if (msg_type == FSCK_WARN) {
- warning("object %s: %s", fsck_describe_object(o, &obj->oid), message);
+ warning("object %s: %s", fsck_describe_object(o, oid), message);
return 0;
}
- error("object %s: %s", fsck_describe_object(o, &obj->oid), message);
+ error("object %s: %s", fsck_describe_object(o, oid), message);
return 1;
}
diff --git a/fsck.h b/fsck.h
index 36cfa463af..69cf715e79 100644
--- a/fsck.h
+++ b/fsck.h
@@ -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;