Re: [PATCH v2 1/2] fsck.c: Change the type of fsck_ident()'s first argument
- From
Yuxuan Shui <yshuiv7@gmail.com>
- Date
- Mar 13, 2014, 04:29 UTC
- Message-ID
- <CAGqt0zwivxtsKqZz9mGPxECHXt3Xd8eJLhDdBPr7Kpk-+UT5uQ@mail.gmail.com>
- In-Reply-To
- <20140312202251.GA3642@sigill.intra.peff.net>
Hi,
On Thu, Mar 13, 2014 at 4:22 AM, Jeff King <peff@peff.net> wrote:
Show 8 quoted lines
> On Thu, Mar 13, 2014 at 02:51:29AM +0800, Yuxuan Shui wrote: > >> Since fsck_ident doesn't change the content of **ident, the type of >> ident could be const char **. > > Unfortunately, const double-pointers in C are a bit tricky, and a > pointer to "char *" cannot automatically be passed as a pointer to > "const char *".
Thanks for pointing this out, I split the changes in a wrong way. I'll fix this in next version of this patch.
Show 20 quoted lines
>
> I think you want this on top:
>
> diff --git a/fsck.c b/fsck.c
> index 1789c34..7776660 100644
> --- a/fsck.c
> +++ b/fsck.c
> @@ -281,7 +281,7 @@ static int fsck_ident(const char **ident, struct object *obj, fsck_error error_f
>
> static int fsck_commit(struct commit *commit, fsck_error error_func)
> {
> - char *buffer = commit->buffer;
> + const char *buffer = commit->buffer;
> unsigned char tree_sha1[20], sha1[20];
> struct commit_graft *graft;
> int parents = 0;
>
> Otherwise, gcc will complain about incompatible pointer types.
>
> -Peff-- Regards Yuxuan Shui