Re: [PATCH v2 1/2] fsck.c: Change the type of fsck_ident()'s first argument

2014-03-12 Thread Jeff King
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 *. 

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
--
To unsubscribe from this list: send the line unsubscribe git in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [PATCH v2 1/2] fsck.c: Change the type of fsck_ident()'s first argument

2014-03-12 Thread Yuxuan Shui
Hi,

On Thu, Mar 13, 2014 at 4:22 AM, Jeff King p...@peff.net 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
--
To unsubscribe from this list: send the line unsubscribe git in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html