Commit 11b5beb7ba92ae1214f1fec91d8e13df2e6dca01

Russell Belfer 2013-02-27T15:07:28

use cdecl for hashsig sorting functions on Windows

diff --git a/src/hashsig.c b/src/hashsig.c
index 60649fd..9fe8f66 100644
--- a/src/hashsig.c
+++ b/src/hashsig.c
@@ -19,7 +19,14 @@ typedef uint64_t hashsig_state;
 
 #define HASHSIG_HEAP_SIZE ((1 << 7) - 1)
 
-typedef int (*hashsig_cmp)(const void *a, const void *b);
+/* going to use qsort so jump through some Windows hoops */
+#ifdef GIT_WIN32
+#define GIT_CDECL __cdecl
+#else
+#define GIT_CDECL
+#endif
+
+typedef int (GIT_CDECL *hashsig_cmp)(const void *a, const void *b);
 
 typedef struct {
 	int size, asize;
@@ -53,13 +60,13 @@ static void hashsig_heap_init(hashsig_heap *h, hashsig_cmp cmp)
 	h->cmp   = cmp;
 }
 
-static int hashsig_cmp_max(const void *a, const void *b)
+static int GIT_CDECL hashsig_cmp_max(const void *a, const void *b)
 {
 	hashsig_t av = *(const hashsig_t *)a, bv = *(const hashsig_t *)b;
 	return (av < bv) ? -1 : (av > bv) ? 1 : 0;
 }
 
-static int hashsig_cmp_min(const void *a, const void *b)
+static int GIT_CDECL hashsig_cmp_min(const void *a, const void *b)
 {
 	hashsig_t av = *(const hashsig_t *)a, bv = *(const hashsig_t *)b;
 	return (av > bv) ? -1 : (av < bv) ? 1 : 0;