Re: [PATCH 02/14] fsck.h: use use "enum object_type" instead of "int"
- From
Junio C Hamano <gitster@pobox.com>
- Date
- Feb 17, 2021, 23:40 UTC
- Message-ID
- <xmqqczwyi7qf.fsf@gitster.g>
- In-Reply-To
- <20210217194246.25342-3-avarab@gmail.com>
Ævar Arnfjörð Bjarmason <avarab@gmail.com> writes:
> Subject: Re: [PATCH 02/14] fsck.h: use use "enum object_type" instead of "int"
use use.
Show 8 quoted lines
> Change the fsck_walk_func to use an "enum object_type" instead of an > "int" type. The types are compatible, and ever since this was added in > 355885d5315 (add generic, type aware object chain walker, 2008-02-25) > we've used entries from object_type (OBJ_BLOB etc.). > > So this doesn't really change anything as far as the generated code is > concerned, it just gives the compiler more information and makes this > easier to read.
Yup, as long as we won't trick the compiler into complaining "ah, but you are not covering OBJ_OFS_DELTA or OBJ_BAD values in your switch statement", I think a change like this is a good thing.
Show 64 quoted lines
> Signed-off-by: Ævar Arnfjörð Bjarmason <avarab@gmail.com>
> ---
> builtin/fsck.c | 3 ++-
> builtin/index-pack.c | 3 ++-
> builtin/unpack-objects.c | 3 ++-
> fsck.h | 3 ++-
> 4 files changed, 8 insertions(+), 4 deletions(-)
>
> diff --git a/builtin/fsck.c b/builtin/fsck.c
> index 821e7798c70..68f0329e69e 100644
> --- a/builtin/fsck.c
> +++ b/builtin/fsck.c
> @@ -197,7 +197,8 @@ static int traverse_reachable(void)
> return !!result;
> }
>
> -static int mark_used(struct object *obj, int type, void *data, struct fsck_options *options)
> +static int mark_used(struct object *obj, enum object_type object_type,
> + void *data, struct fsck_options *options)
> {
> if (!obj)
> return 1;
> diff --git a/builtin/index-pack.c b/builtin/index-pack.c
> index 54f74c48741..2f291a14d4a 100644
> --- a/builtin/index-pack.c
> +++ b/builtin/index-pack.c
> @@ -212,7 +212,8 @@ static void cleanup_thread(void)
> free(thread_data);
> }
>
> -static int mark_link(struct object *obj, int type, void *data, struct fsck_options *options)
> +static int mark_link(struct object *obj, enum object_type type,
> + void *data, struct fsck_options *options)
> {
> if (!obj)
> return -1;
> diff --git a/builtin/unpack-objects.c b/builtin/unpack-objects.c
> index dd4a75e030d..ca54fd16688 100644
> --- a/builtin/unpack-objects.c
> +++ b/builtin/unpack-objects.c
> @@ -187,7 +187,8 @@ static void write_cached_object(struct object *obj, struct obj_buffer *obj_buf)
> * that have reachability requirements and calls this function.
> * Verify its reachability and validity recursively and write it out.
> */
> -static int check_object(struct object *obj, int type, void *data, struct fsck_options *options)
> +static int check_object(struct object *obj, enum object_type type,
> + void *data, struct fsck_options *options)
> {
> struct obj_buffer *obj_buf;
>
> diff --git a/fsck.h b/fsck.h
> index df0b64a2163..0c75789d219 100644
> --- a/fsck.h
> +++ b/fsck.h
> @@ -23,7 +23,8 @@ int is_valid_msg_type(const char *msg_id, const char *msg_type);
> * <0 error signaled and abort
> * >0 error signaled and do not abort
> */
> -typedef int (*fsck_walk_func)(struct object *obj, int type, void *data, struct fsck_options *options);
> +typedef int (*fsck_walk_func)(struct object *obj, enum object_type object_type,
> + void *data, struct fsck_options *options);
>
> /* callback for fsck_object, type is FSCK_ERROR or FSCK_WARN */
> typedef int (*fsck_error)(struct fsck_options *o,