From: Yuxuan Shui Date: Thu, 13 Mar 2014 04:29:20 GMT Subject: Re: [PATCH v2 1/2] fsck.c: Change the type of fsck_ident()'s first argument Message-ID: In-Reply-To: <20140312202251.GA3642@sigill.intra.peff.net> Hi, On Thu, Mar 13, 2014 at 4:22 AM, Jeff King wrote: > 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. > > 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