Re: [PATCH] resolve-undo.c: silence compiler complaints by casting void * to char *
- From
Junio C Hamano <gitster@pobox.com>
- Date
- Feb 2, 2010, 05:46 UTC
- Message-ID
- <7vr5p4favs.fsf@alter.siamese.dyndns.org>
- In-Reply-To
- <7vsk9kplla.fsf@alter.siamese.dyndns.org>
Junio C Hamano <gitster@pobox.com> writes:
Show 6 quoted lines
> 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 **);