summaryrefslogtreecommitdiff
path: root/src/hashsig.c
diff options
context:
space:
mode:
authorRussell Belfer <rb@github.com>2013-02-27 15:07:28 -0800
committerRussell Belfer <rb@github.com>2013-02-27 15:07:28 -0800
commit11b5beb7ba92ae1214f1fec91d8e13df2e6dca01 (patch)
tree26ce917829950dbdbe176023ff74f3f24fafb2e8 /src/hashsig.c
parente68e33f33d98c171d31dac33257250b5ecded4c9 (diff)
downloadlibgit2-11b5beb7ba92ae1214f1fec91d8e13df2e6dca01.tar.gz
use cdecl for hashsig sorting functions on Windows
Diffstat (limited to 'src/hashsig.c')
-rw-r--r--src/hashsig.c13
1 files changed, 10 insertions, 3 deletions
diff --git a/src/hashsig.c b/src/hashsig.c
index 60649fd11..9fe8f6671 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;