Remove all void-pointer arithmetic.
[git.git] / diff-delta.c
index c618875..8b9172a 100644 (file)
@@ -22,6 +22,7 @@
 #include <string.h>
 #include "delta.h"
 
+#include "git-compat-util.h"
 
 /* maximum hash entry list for the same hash bucket */
 #define HASH_LIMIT 64
@@ -131,7 +132,7 @@ struct delta_index {
        const void *src_buf;
        unsigned long src_size;
        unsigned int hash_mask;
-       struct index_entry *hash[0];
+       struct index_entry *hash[FLEX_ARRAY];
 };
 
 struct delta_index * create_delta_index(const void *buf, unsigned long bufsize)
@@ -199,7 +200,6 @@ struct delta_index * create_delta_index(const void *buf, unsigned long bufsize)
                        entry->next = hash[i];
                        hash[i] = entry++;
                        hash_count[i]++;
-                       entries--;
                }
        }
 
@@ -230,10 +230,6 @@ struct delta_index * create_delta_index(const void *buf, unsigned long bufsize)
        }
        free(hash_count);
 
-       /* If we didn't use all hash entries, free the unused memory. */
-       if (entries)
-               index = realloc(index, memsize - entries * sizeof(*entry));
-
        return index;
 }
 
@@ -288,7 +284,7 @@ create_delta(const struct delta_index *index,
        ref_data = index->src_buf;
        ref_top = ref_data + index->src_size;
        data = trg_buf;
-       top = trg_buf + trg_size;
+       top = (const unsigned char *) trg_buf + trg_size;
 
        outpos++;
        val = 0;