Commit bdcc46111c17b3a59d70ce197e44443f5ffba616

nulltoken 2011-07-07T10:11:00

Fix MSVC compilation warnings

diff --git a/src/tsort.c b/src/tsort.c
index eda9a2f..70ed589 100644
--- a/src/tsort.c
+++ b/src/tsort.c
@@ -3,6 +3,9 @@
 #include <stdint.h>
 #include <stdlib.h>
 
+#ifndef GIT_WIN32
+#include <common.h>
+#endif
 /**
  * An array-of-pointers implementation of Python's Timsort
  * Based on code by Christopher Swenson under the MIT license
@@ -89,6 +92,8 @@ static int binsearch(void **dst, const void *x, size_t size, cmp_ptr_t cmp)
 static void bisort(void **dst, size_t start, size_t size, cmp_ptr_t cmp)
 {
 	size_t i;
+	void *x;
+	int location;
 
 	for (i = start; i < size; i++) {
 		int j;
@@ -97,8 +102,8 @@ static void bisort(void **dst, size_t start, size_t size, cmp_ptr_t cmp)
 			continue;
 
 		/* Else we need to find the right place, shift everything over, and squeeze in */
-		void *x = dst[i];
-		int location = binsearch(dst, x, i, cmp);
+		x = dst[i];
+		location = binsearch(dst, x, i, cmp);
 		for (j = i - 1; j >= location; j--) {
 			dst[j + 1] = dst[j];
 		}
@@ -323,7 +328,8 @@ static ssize_t collapse(void **dst, struct tsort_run *stack, ssize_t stack_curr,
 		bisort(&dst[curr], len, run, cmp);\
 		len = run;\
 	}\
-	run_stack[stack_curr++] = (struct tsort_run) {curr, len};\
+	run_stack[stack_curr].start = curr;\
+	run_stack[stack_curr++].length = len;\
 	curr += len;\
 	if (curr == (ssize_t)size) {\
 		/* finish up */ \
@@ -341,7 +347,6 @@ static ssize_t collapse(void **dst, struct tsort_run *stack, ssize_t stack_curr,
 }\
 while (0)
 
-
 void git__tsort(void **dst, size_t size, cmp_ptr_t cmp)
 {
 	struct tsort_store _store, *store = &_store;
diff --git a/src/util.h b/src/util.h
index 410ebfb..e649070 100644
--- a/src/util.h
+++ b/src/util.h
@@ -118,7 +118,7 @@ extern int git__fnmatch(const char *pattern, const char *name, int flags);
 		} \
 	} while (0)
 
-extern int git__tsort(void **b, size_t n, int (*cmp)(const void *, const void *));
+extern void git__tsort(void **dst, size_t size, int (*cmp)(const void *, const void *));
 extern void **git__bsearch(const void *key, void **base, size_t nmemb,
 	int (*compar)(const void *, const void *));
 
diff --git a/tests/t00-core.c b/tests/t00-core.c
index 660f10c..6b20e18 100644
--- a/tests/t00-core.c
+++ b/tests/t00-core.c
@@ -75,7 +75,7 @@ END_TEST
 
 static int test_cmp(const void *a, const void *b)
 {
-	return a - b;
+	return (int)a - (int)b;
 }
 
 BEGIN_TEST(vector2, "remove duplicates")