Re: [PATCH] resolve-undo.c: silence compiler complaints by casting void * to char *
From: Junio C Hamano <hidden>
Date: 2016-06-15 22:48:09
Junio C Hamano [off-list ref] writes:
Thanks for catching this. In this particular case, I however suspect that it would be cleaner to declare that the first parameter to resolve_undo_read() is a "char *" (or even "const char *"), as we are dealing with NUL delimited list of octal numbers and character strings.
It would look like this. I wonder if we should make hash*() inline functions to take (void *) or (const void *) pointers to avoid further noises like this but that would be a separate topic. resolve-undo.c | 4 ++-- resolve-undo.h | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/resolve-undo.c b/resolve-undo.c
index 37d73cd..0f50ee0 100644
--- a/resolve-undo.c
+++ b/resolve-undo.c@@ -53,7 +53,7 @@ void resolve_undo_write(struct strbuf *sb, struct string_list *resolve_undo) for_each_string_list(write_one, resolve_undo, sb); } -struct string_list *resolve_undo_read(void *data, unsigned long size) +struct string_list *resolve_undo_read(const char *data, unsigned long size) { struct string_list *resolve_undo; size_t len;
@@ -93,7 +93,7 @@ struct string_list *resolve_undo_read(void *data, unsigned long size) continue; if (size < 20) goto error; - hashcpy(ui->sha1[i], data); + hashcpy(ui->sha1[i], (const unsigned char *)data); size -= 20; data += 20; }
diff --git a/resolve-undo.h b/resolve-undo.h
index e4e5c1b..8458769 100644
--- a/resolve-undo.h
+++ b/resolve-undo.h@@ -8,7 +8,7 @@ struct resolve_undo_info { extern void record_resolve_undo(struct index_state *, struct cache_entry *); extern void resolve_undo_write(struct strbuf *, struct string_list *); -extern struct string_list *resolve_undo_read(void *, unsigned long); +extern struct string_list *resolve_undo_read(const char *, unsigned long); extern void resolve_undo_clear_index(struct index_state *); extern int unmerge_index_entry_at(struct index_state *, int); extern void unmerge_index(struct index_state *, const char **);